You've already forked sap-jenkins-library
mirror of
https://github.com/SAP/jenkins-library.git
synced 2025-11-29 22:58:09 +02:00
RFC Upload Documentation (#2922)
RFC Upload Doc - add RFC upload document
This commit is contained in:
105
documentation/docs/steps/transportRequestUploadRFC.md
Normal file
105
documentation/docs/steps/transportRequestUploadRFC.md
Normal file
@@ -0,0 +1,105 @@
|
||||
# ${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')
|
||||
```
|
||||
Reference in New Issue
Block a user