1
0
mirror of https://github.com/SAP/jenkins-library.git synced 2024-12-14 11:03:09 +02:00
sap-jenkins-library/documentation/docs/steps/transportRequestUploadRFC.md

106 lines
3.2 KiB
Markdown
Raw Normal View History

# ${docGenStepName}
## ${docGenDescription}
## Prerequisites
* You have enabled RFC on the ABAP system.
* You have a user account on the ABAP system where you have assigned the required roles for uploading via RFC.
* You have created a transport request on the ABAP system, which is the target container of the upload.
## RFC Client
The RFC Client connects to your ABAP system using the [SAP NetWeaver RFC SDK](https://support.sap.com/en/product/connectors/nwrfcsdk.html).
For more information, see [classical SAP connectivity technology RFC](https://help.sap.com/viewer/753088fc00704d0a80e7fbd6803c8adb/1709%20000/en-US/4888068ad9134076e10000000a42189d.html).
To install an RFC library based Connector Client, proceed as follows:
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).
1. Push your image to your private [Docker Hub registry](https://hub.docker.com/).
1. Add the following to your config.yml file:
```yaml
steps:
transportRequestUploadRFC:
dockerImage: 'my/rfc-client'
```
## Specifying the Transport Request
The target of the upload is a transport request, identified by an identifier (ID).
The step `transportRequestUploadRFC` allows you to set the ID by parameter.
Alternatively, you can pass the ID through the `commonPipelineEnvironment`.
For example, by performing a step that generates the ID or obtains it differently.
See [transportRequestReqIDFromGit](transportRequestReqIDFromGit.md).
### Adding a Parameter
A parameterized pipeline allows you to specify the ID with the launch of the build instead of entering it statically into the pipeline.
```groovy
transportRequestUploadRFC(
script: this,
transportRequestId: ${TRANSPORT_REQUEST_ID},
...
)
```
The Jenkins pipeline `input` step allows you to specify the ID at runtime of the pipeline.
```groovy
def ids = input( message: "Upload?",
parameters: [
string(name: 'TRANSPORT_REQUEST_ID',description: 'Transport Request ID')
]
)
transportRequestUploadRFC(
script:this,
transportRequestId: ids['TRANSPORT_REQUEST_ID'],
...
)
```
## Common Pipeline Environment
Use the step [transportRequestReqIDFromGit](transportRequestReqIDFromGit.md) to obtain the `transportRequestId` value from your Git commit messages.
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.
```groovy
transportRequestReqIDFromGit( script: this )
transportRequestUploadRFC( script: this, ... )
```
## ${docGenParameters}
## ${docGenConfiguration}
## ${docJenkinsPluginDependencies}
## Example
```yaml
# config.yaml
steps:
transportRequestUploadRFC:
changeManagement:
credentialsId: 'RFC_CREDENTIALS_ID'
endpoint: 'https://example.org/cm/rfc/endpoint'
instance: '00'
client: '001'
abapPackage: 'PACK'
applicationDescription: 'Lorem ipsum'
applicationName: 'APP'
dockerImage: 'my/rfc-client'
```
```groovy
// pipeline script
transportRequestReqIDFromGit( script: this )
transportRequestUploadRFC( script: this, applicationUrl: 'https://example.org/appl/url/archive.zip')
```