github.com/jaylevin/jenkins-library@v1.230.4/documentation/docs/steps/abapEnvironmentBuild.md (about) 1 # ${docGenStepName} 2 3 ## ${docGenDescription} 4 5 ## Prerequisites SAP BTP, ABAP environment 6 7 * A SAP BTP, ABAP environment system is available. 8 * This can be created manually on Cloud Foundry. 9 * In a pipeline, you can do this, for example, with the step [cloudFoundryCreateService](https://sap.github.io/jenkins-library/steps/cloudFoundryCreateService/). 10 * Communication Scenario [“SAP BTP, ABAP Environment - Software Assembly Integration (SAP_COM_0582)“](https://help.sap.com/viewer/65de2977205c403bbc107264b8eccf4b/Cloud/en-US/26b8df5435c649aa8ea7b3688ad5bb0a.html) is setup for this system. 11 * E.g. a [Communication User](https://help.sap.com/viewer/65de2977205c403bbc107264b8eccf4b/Cloud/en-US/0377adea0401467f939827242c1f4014.html), a [Communication System](https://help.sap.com/viewer/65de2977205c403bbc107264b8eccf4b/Cloud/en-US/1bfe32ae08074b7186e375ab425fb114.html) and a [Communication Arrangement](https://help.sap.com/viewer/65de2977205c403bbc107264b8eccf4b/Cloud/en-US/a0771f6765f54e1c8193ad8582a32edb.html) are configured. 12 * This can be done manually through the respective applications on the SAP BTP, ABAP environment system, 13 * or through creating a service key for the system on cloud foundry with the parameters {“scenario_id”: “SAP_COM_0582", “type”: “basic”}. 14 * In a pipeline, you can do this, for example, with the step [cloudFoundryCreateServiceKey](https://sap.github.io/jenkins-library/steps/cloudFoundryCreateServiceKey/). 15 * You have following options to provide the ABAP endpoint configuration: 16 * The host and credentials the SAP BTP, ABAP environment system itself. The credentials must be configured for the Communication Scenario SAP_COM_0582. 17 * The Cloud Foundry parameters (API endpoint, organization, space), credentials, the service instance for the ABAP service and the service key for the Communication Scenario SAP_COM_0582. 18 * Only provide one of those options with the respective credentials. If all values are provided, the direct communication (via host) has priority. 19 20 ## Prerequisites On Premise 21 22 * You need to specify the host and credentials to your system 23 * A certificate for the system needs to be stored in .pipeline/trustStore and the name of the certificate needs to be handed over via the configuration 24 25 ## ${docGenParameters} 26 27 ## ${docGenConfiguration} 28 29 ## ${docJenkinsPluginDependencies} 30 31 ## Examples 32 33 ### Configuration in the config.yml 34 35 If you want to use this step several time in one pipeline with different phases, the steps have to be put in different stages as it is not allowed to run the same step repeatedly in one stage. 36 37 The recommended way to configure your pipeline is via the config.yml file. In this case, calling the step in the Jenkinsfile is reduced to one line: 38 39 ```groovy 40 stage('MyPhase') { 41 steps { 42 abapEnvironmentBuild script: this 43 } 44 } 45 ``` 46 47 If you want to provide the host and credentials of the Communication Arrangement directly or you want to run in on premise, the configuration could look as follows: 48 49 ```yaml 50 stages: 51 MyPhase: 52 abapCredentialsId: 'abapCredentialsId', 53 host: 'https://myABAPendpoint.com', 54 ``` 55 56 Or by authenticating against Cloud Foundry and reading the Service Key details from there: 57 58 ```yaml 59 stages: 60 MyPhase: 61 abapCredentialsId: 'cfCredentialsId', 62 cfApiEndpoint : 'https://test.server.com', 63 cfOrg : 'cfOrg', 64 cfSpace: 'cfSpace', 65 cfServiceInstance: 'myServiceInstance', 66 cfServiceKeyName: 'myServiceKey', 67 ``` 68 69 One possible complete config example. Please note that the values are handed over as a string, which has inside a json structure: 70 71 ```yaml 72 stages: 73 MyPhase: 74 abapCredentialsId: 'abapCredentialsId' 75 host: 'https://myABAPendpoint.com' 76 certificateNames: ['myCert.cer'] 77 phase: 'MyPhase' 78 values: '[{"value_id":"ID1","value":"Value1"},{"value_id":"ID2","value":"Value2"}]' 79 downloadResultFilenames: ['File1','File2'] 80 publishResultFilenames: ['File2'] 81 subDirectoryForDownload: 'MyDir' 82 filenamePrefixForDownload: 'MyPrefix' 83 treatWarningsAsError: true 84 maxRuntimeInMinutes: 360 85 pollingIntervallInSeconds: 15 86 ```