github.com/jaylevin/jenkins-library@v1.230.4/documentation/docs/steps/transportRequestUploadRFC.md (about) 1 # ${docGenStepName} 2 3 ## ${docGenDescription} 4 5 ## Prerequisites 6 7 * You have enabled RFC on the ABAP system. 8 * You have a user account on the ABAP system where you have assigned the required roles for uploading via RFC. 9 * You have created a transport request on the ABAP system, which is the target container of the upload. 10 11 ## RFC Client 12 13 The RFC Client connects to your ABAP system using the [SAP NetWeaver RFC SDK](https://support.sap.com/en/product/connectors/nwrfcsdk.html). 14 15 For more information, see [classical SAP connectivity technology RFC](https://help.sap.com/viewer/753088fc00704d0a80e7fbd6803c8adb/1709%20000/en-US/4888068ad9134076e10000000a42189d.html). 16 17 To install an RFC library based Connector Client, proceed as follows: 18 19 1. Create a Docker image as described in the Git repository [devops-docker-images/node-rfc](https://github.com/rodibrin/devops-docker-images/tree/master/node-rfc). 20 1. Push your image to your private [Docker Hub registry](https://hub.docker.com/). 21 1. Add the following to your config.yml file: 22 23 ```yaml 24 steps: 25 transportRequestUploadRFC: 26 dockerImage: 'my/rfc-client' 27 ``` 28 29 ## Specifying the Transport Request 30 31 The target of the upload is a transport request, identified by an identifier (ID). 32 33 The step `transportRequestUploadRFC` allows you to set the ID by parameter. 34 35 Alternatively, you can pass the ID through the `commonPipelineEnvironment`. 36 For example, by performing a step that generates the ID or obtains it differently. 37 See [transportRequestReqIDFromGit](transportRequestReqIDFromGit.md). 38 39 ### Adding a Parameter 40 41 A parameterized pipeline allows you to specify the ID with the launch of the build instead of entering it statically into the pipeline. 42 43 ```groovy 44 transportRequestUploadRFC( 45 script: this, 46 transportRequestId: ${TRANSPORT_REQUEST_ID}, 47 ... 48 ) 49 ``` 50 51 The Jenkins pipeline `input` step allows you to specify the ID at runtime of the pipeline. 52 53 ```groovy 54 def ids = input( message: "Upload?", 55 parameters: [ 56 string(name: 'TRANSPORT_REQUEST_ID',description: 'Transport Request ID') 57 ] 58 ) 59 60 transportRequestUploadRFC( 61 script:this, 62 transportRequestId: ids['TRANSPORT_REQUEST_ID'], 63 ... 64 ) 65 ``` 66 67 ## Common Pipeline Environment 68 69 Use the step [transportRequestReqIDFromGit](transportRequestReqIDFromGit.md) to obtain the `transportRequestId` value from your Git commit messages. 70 71 This step extracts the ID from the commit messages of your project repository and enters it into the `commonPipelineEnvironment`, in turn, the upload step `transportRequestUploadRFC` picks it up from there. 72 73 ```groovy 74 transportRequestReqIDFromGit( script: this ) 75 transportRequestUploadRFC( script: this, ... ) 76 ``` 77 78 ## ${docGenParameters} 79 80 ## ${docGenConfiguration} 81 82 ## ${docJenkinsPluginDependencies} 83 84 ## Example 85 86 ```yaml 87 # config.yaml 88 steps: 89 transportRequestUploadRFC: 90 changeManagement: 91 credentialsId: 'RFC_CREDENTIALS_ID' 92 endpoint: 'https://example.org/cm/rfc/endpoint' 93 instance: '00' 94 client: '001' 95 abapPackage: 'PACK' 96 applicationDescription: 'Lorem ipsum' 97 applicationName: 'APP' 98 dockerImage: 'my/rfc-client' 99 ``` 100 101 ```groovy 102 // pipeline script 103 transportRequestReqIDFromGit( script: this ) 104 transportRequestUploadRFC( script: this, applicationUrl: 'https://example.org/appl/url/archive.zip') 105 ```