orkungedik/SAP-basis-dataset huggingface dataset:
## 6.3.2.4.5.2  Create a Communication System
You can create a communication system in the ABAP environment.
## Prerequisites
You have the Administrator role (role template ID SAP\_BR\_ADMINISTRATOR ).
## Procedure
1. Log on to the SAP Fiori launchpad in the ABAP environment.
2. Open the Communication Systems app from the SAP Fiori Launchpad.
3. Choose New .
4. Enter System ID and System Name . The system ID should be unique.
5. Turn off the Destination Service to view the Host Name .
6. Under Technical Data General , enter the Host Name of the SAP Analytics Cloud tenant and Port as 443 . SAP Analytics Cloud follows the host name schema xxx.sapanalytics.cloud .
7. Choose Save .
## 6.3.2.4.5.3  Create a Communication Arrangement
You create a communication arrangement in the ABAP environment.
## Prerequisites
You have the Administrator role (role template ID SAP\_BR\_ADMINISTRATOR ).
## Procedure
1. Log on to the SAP Fiori launchpad in the ABAP environment.
2. Open the Communication Arrangement app.
3. Choose New .
4. Select the communication scenario SAP\_COM\_0065 .
5. Enter a name for the arrangement.
6. Choose Create .
7. In the Common Data section, select the Communication System that you created in the previous section.
8. Under Additional Properties Tenant ID maintain the tenant ID that is visible in the URL of the SAP Analytics Cloud app.
When you call https://xxx.sapanalytics.cloud , you will be redirected to the full URL where you can find the tenant ID as shown in this example: https://xxx.sapanalytics.cloud/sap/fpa/ui/ tenants/«tenant ID»/app.html . Y ou can also find the tenant ID under Menu SAC Tenant System About System Name .
9. Under Outbound Services UI Link Navigation , check the Service Status as Active .
10. Under Retrieve Stories , uncheck the Service Status .
##  Note
Retrieving stories is not supported.
11. Choose Save .
##  Note
Do not create more than one communication arrangement with communication scenario SAP\_COM\_0065 in your ABAP Environment tenant.
## 6.3.2.4.5.4  Configure Live Data Connection
You configure a live data connection in SAP Analytics Cloud.
## Prerequisites
You have the BI Admin role in the SAP Analytics Cloud system.
## Procedure
1. Login to the SAP Analytics Cloud tenant.
2. Choose Main Menu Connection + .
3. In the Select a data source dialog, expand Connect to Live Data and select SAP S/4 HANA .
4. In the S/4 HANA Live Connection dialog, enter the name and description.
5. Select the Connection Type as Direct Connection .
6. Enter the host name as xxx.abap-web.stagingaws.hanavlab.ondemand.com .
7. Enter HTTPS Port as 443 and Client as 100 .
8. Select the Authentication Method as SAML Single Sign-on (Standard Compliant) .
9. Choose OK .
## 6.3.2.4.7 Integrating SAP Document Management Service
You can integrate the SAP BTP ABAP environment with SAP Document Management Service to establish a communication scenario.
## Prerequisites
- You've subscribed to the service Document Management Service, Integration Option and created an instance in the Cloud Foundry environment. See Initial Setup for Document Management Service, Integration Option.
- The global administrator of your SAP BTP account has added the service plan for Document Management Service, Repository Option to your subaccount via entitlements. See Configure Entitlements for Subaccounts.
- You've onboarded the storage capability provided by Document Management. See Connect to Document Management Service, Repository Option Using API.
- You've created and copied the service key in the same subaccount of Cloud Foundry environment where Document Management, integration option instance is created. For more information about creating a service key, see Create Service Keys Using the Cockpit.
- You have the Administrator role (role template ID SAP\_BR\_ADMINISTRATOR ). See Maintain Business Roles.
## Context
SAP Document Management Service helps companies with managing records or attachments that are linked to business objects or a specific business context.
For each tenant of SAP BTP ABAP environment, a service instance of SAP Document Management Service in Cloud Foundry environment has to be created.
You can build and edit communication arrangements that your organization has set up with a communication partner using the Communication Arrangement application. The system provides communication scenarios for inbound and outbound communication that you can use to create communication arrangements. Inbound communication describes how a communication partner receives business documents, while outbound communication describes how a communication partner sends business documents to a communication partner. The communication scenario specifies the authorizations, inbound and outbound services, and supported authentication methods that are necessary for the communication.
##  Note
There is a collection of sample classes available on Github: https://github.com/SAP-samples/abapcmis-client-sample . They help you use SAP Document Management Service, Integration option, in the SAP BTP ABAP environment.
## Related Information
Create a Communication Arrangement [page 2999]
## 6.3.2.4.7.1  Create a Communication Arrangement
Create a communication arrangement in the ABAP environment.
## Prerequisites
You've the Administrator role (role template ID SAP\_BR\_ADMINISTRATOR ).
## Procedure
1. Log on to the SAP Fiori launchpad in the ABAP environment.
2. Open the Communication Arrangement app from the SAP Fiori Launchpad.
3. Choose New .
4. Select the communication scenario SAP\_COM\_0668 .
5. Enter Service Key that you generated. For more information about creating service key, see Create Service Keys Using the Cockpit.
6. Choose Create .
A communication system created with the name ZSAP\_COM\_0668 .
##  Note
Don't create more than one communication arrangement with communication scenario SAP\_COM\_0668 in your tenant in the ABAP environment.
## 6.3.2.4.8 Integrating SAP BTP ABAP environment and Local Printers
To set up the integration between SAP BTP ABAP environment and local printers, you can use two communication scenarios, SAP\_COM\_0466 and SAP\_COM\_0467 .
Both communication scenarios are designed to connect third-party output management systems (OMS). OMS provide you with more refined printing functionalities. With SAP\_COM\_0466 , the OMS use polling to check for the availability of new items to print. The communication scenario only has inbound communication. The SAP Cloud Print Manager for Pull Integration is supported by this communication scenario.
With SAP\_COM\_0467 , the SAP BTP ABAP environment system sends a notification to the OMS if new items are available to print. Therefore, the communication scenario has in- and outbound communication. This communication scenario doesn't support the use of the SAP Cloud Print Manager for Pull Integration .
Item retrieval and status update is the same for both methods. The only difference is the determination of new items to print.
Please check the documentation of your OMS first to see which method is supported before creating a communication arrangement of any type. An example of an implementation of these communication scenarios is Microsoft Universal Print. See this blog for more details.
## Related Information
SAP\_COM\_0466 [page 3000] SAP\_COM\_0A86 [page 3003] SAP\_COM\_0467 [page 3002] Maintain Print Queues [page 2819] Printing [page 1502]
## 6.3.2.4.8.4  Managing Print Profiles
You can manage your print profiles for SAP\_COM\_0466 and SAP\_COM\_0467 in the Maintain Print Queues app.
## Procedure
1. Assign a printer to a 0466 or 0467 print queue in your OMS or in the SAP Cloud Print Manager for Pull Integration . Mind that print profiles in the print manager are only supported when in PDF format. Make sure to ignore the print profile in the PDF Settings of your print manager in order to secure a correct runtime of the tool.
##  Note
If you've used SAP\_COM\_0467 to integrate your local printers to the SAP BTP ABAP environment system, you can only choose a local printer from your external OMS instead.
2. Now, open the Maintain Print Queues app and select the print queue for which you want to define your print profiles.
3. Select Manage Print Profiles in the taskbar to set your print profile.
4. In the Print Options dialog, you can manage your print settings. After you've selected your individual print settings from the dropdown menu, select Save As .
5. Choose a profile name. Select Use as favorite to save the settings of your print profile. If no favorite has been selected, a default will be used. Each print job going into the same print queue will use these same settings. Click OK . Y our new print profile has now been created. To delete a print profile, select Delete from the Print Options dialog.
##  Note
You can only define print profiles if you have administrator rights.
## Related Information
SAP\_COM\_0466 [page 3000]
## 6.3.2.4.9 Integrating External Scheduler
This inbound OData service enables external systems to schedule an application job based on an application job template.
The technical name of this inbound OData service is BC\_EXT\_APPJOB\_MANAGEMENT . Please see the description of the operation JobSchedule for restrictions. Additionally, the service offers other elementary operations on application jobs.
## Service Structure
## Entities
The entities contain the business data of the service.
| Entity            | Description                                       |
|-------------------|---------------------------------------------------|
| Jobinfo           | Detailed information on a single application job. |
| JobTemplate       | Information on an application job template.       |
| JobScheduleStatus | Information on a scheduled job.                   |
| FuncImpReturn     | Return code.                                      |
## Service Response
The details included in the response vary according to the type of operation. For more information, see Operations for External Job Scheduling Service [page 3010].
## 6.3.2.4.9.1.1  Read an Application Job Without Parameters
Read an application job including step and log data, without parameters, using the HTTP method GET . An application job consists of a job header, a job step, a log header, and a log message. Via $expand all these job data can be read with one request.
## Request
You can retrieve all entities of an application job with one call: GET &lt;host&gt;/sap/opu/odata/SAP/BC\_EXT\_APPJOB\_MANAGEMENT;v=0002/ JobHeaderSet(JobName='JobName',JobRunCount='JobCount')?$expand=JobStepSet/ JobStepLogInfoSet/JobLogMessageSet
You can include the following properties in the URL of the request:
| Property    | Necessity   | Comment                                  |
|-------------|-------------|------------------------------------------|
| JobName     | Mandatory   | This is the name of the application job. |
| JobRunCount | Mandatory   | This is the ID of the application job.   |
## Example
```
GET <host>/sap/opu/odata/SAP/BC_EXT_APPJOB_MANAGEMENT;v=0002/ JobHeaderSet(JobName='JobName',JobRunCount='JobCount')?$expand=JobStepSet/ JobStepLogInfoSet/JobLogMessageSet
```
For more information, see 3383044 .
## 6.3.2.4.9.1.2  Read Application Job Templates
Get a list of all application job templates using the HTTP methode GET .
## Request
Use the URL &lt;host&gt;/sap/opu/odata/SAP/BC\_EXT\_APPJOB\_MANAGEMENT;v=0002/JobTemplateSet without parameters.
## Response
The operation returns a list of all application job templates.
## Examples
## Request
GET &lt; host &gt;/sap/opu/odata/SAP/BC\_EXT\_APPJOB\_MANAGEMENT;v=0002/JobTemplateSet
## Response
```
{ "d": { "results": [ { "JobTemplateName": "string", "JobTemplateVersion": "string", "JobTemplateStepCount": "Unknown Type: integer,null", "JobPeriodicGranularity": "Unknown Type: string,null", "JobReportName": "Unknown Type: string,null", "JobUserName": "Unknown Type: string,null", "JobPeriodicValue": "Unknown Type: string,null", "JobTemplateText": "Unknown Type: string,null", "CreationDateTime": "/Date(1492098664000)/", "CreationUserName": "Unknown Type: string,null", "LastChangeDateTime": "/Date(1492098664000)/",
```
```
"LastChangeUserName": "Unknown Type: string,null", "SupportsTestModeInd": "Unknown Type: boolean,null" } ] } }
```
## 6.3.2.4.9.1.4  Read Application Job Status
Read the status of an application job using the HTTP method GET .
## Request
You can include the following properties in the URL of the request:
| Property    | Necessity   | Comment                                 |
|-------------|-------------|-----------------------------------------|
| JobRunCount | Mandatory   | This is the ID of an application job.   |
| JobName     | Mandatory   | This is the name of an application job. |
## Response
The operation returns the status of an application job.
## Additional Information
Please note that to obtain the status of jobs that weren't scheduled using the external scheduler API, you should assign your communication user not only to SAP\_COM\_0064 but also to SAP\_COM\_0326. For more information on this issue, see 3358110 .
## Examples
## Request
GET &lt; host &gt;/sap/opu/odata/SAP/BC\_EXT\_APPJOB\_MANAGEMENT;v=0002/JobStatusGet? JobName='JobName'&amp;JobRunCount='JobCount'
## Response
```
{ "d": { "results": [ { "JobName": "string" "JobRunCount": "string" "JobStatus": "char" "ReturnCode": "integer" (0 = ok, <> 0 = error) } ] } }
```
## 6.3.2.4.9.1.5  Abort a Running Application Job
Abort a running application job using the HTTP metthod POST.
## Request
You can include the following properties in the URL of the request:
| Property    | Necessity   | Comment                                 |
|-------------|-------------|-----------------------------------------|
| JobRunCount | Mandatory   | This is the ID of an application job.   |
| JobName     | Mandatory   | This is the name of an application job. |
## Examples
## Request
```
POST < host >/sap/opu/odata/SAP/BC_EXT_APPJOB_MANAGEMENT;v=0002/JobAbort? JobName='JobName'&JobRunCount='JobCount'
```
## Response
```
{ "d": { "results": [ { "ReturnCode": "integer" (0 = ok, <> 0 = error) } ] } }
```
## 6.3.2.4.9.1.6  Cancel an Application Job
Cancel an application job in general using the HTTP method POST .
This operation is more general than JobAbort. JobCancel treats a job depending on its status:
- If a job is already running, JobCancel will cancel the job like JobAbort.
- If a job has not yet started, JobCancel will delete it.
## Request
You can include the following properties in the URL of the request:
| Property    | Necessity   | Comment                               |
|-------------|-------------|---------------------------------------|
| JobRunCount | Mandatory   | This is the ID of an application job. |
| Property   | Necessity   | Comment                                 |
|------------|-------------|-----------------------------------------|
| JobName    | Mandatory   | This is the name of an application job. |
## Examples
## Request
POST &lt; host &gt;/sap/opu/odata/SAP/BC\_EXT\_APPJOB\_MANAGEMENT;v=0002/JobCancel? JobName='JobName'&amp;JobRunCount='JobCount'
## Response
```
{ "d": { "results": [ { "ReturnCode": "integer" (0 = ok, <> 0 = error) } ] } }
```
## 6.3.2.4.9.1.7  Read Detailed Job and Step Information
Read detailed job and step information using the HTTP method GET .
This operation returns one line for each job step, where each line contains some global information of the job (like status, start time, end time) and step specific information like step status and step start time.
## Request
You can include the following properties in the URL of the request:
| Property    | Necessity   | Comment                                 |
|-------------|-------------|-----------------------------------------|
| JobRunCount | Mandatory   | This is the ID of an application job.   |
| JobName     | Mandatory   | This is the name of an application job. |
## Examples
## Request
```
GET < host ><host>/sap/opu/odata/SAP/BC_EXT_APPJOB_MANAGEMENT;v=0002/JobinfoGet? JobName='JobName'&JobRunCount='JobCount'
```
## Response
```
{ "d": { "results": [ { "JobName": "string", "JobRunCount": "string", "JobStatus": "string", "JobSdlDateTime": "DateTime", "JobStartDateTime": "DateTime", "JobEndDateTime": "DateTime", "JobAppRC": "Integer", "StepCount": "DateTime", "StepStatus": "String", "StepStartDateTime": "DateTime", "StepAppRC": "Integer", } ] } }
```
## 6.3.2.4.9.1.8  Read Application Job Status Texts
Get a list of all possible application job statuses and their corresponding status texts using the HTTP method GET .
## Request
Use the URL &lt;host&gt;/sap/opu/odata/SAP/BC\_EXT\_APPJOB\_MANAGEMENT;v=0002/JobStatusInfoSet without parameters.
## Response
The operation returns a list of all application job statuses and their texts.
## Examples
## Request
GET &lt; host &gt;/sap/opu/odata/SAP/BC\_EXT\_APPJOB\_MANAGEMENT;v=0002/JobStatusInfoSet optional with language settings:
GET &lt; host &gt;/sap/opu/odata/SAP/BC\_EXT\_APPJOB\_MANAGEMENT;v=0002/JobStatusInfoSet?saplanguage=EN
## Response
```
<d:JobStatus>C</d:JobStatus> <d:JobStatusText>Canceled</d:JobStatusText>
```
or
```
<d:JobStatus>S</d:JobStatus> <d:JobStatusText>Scheduled</d:JobStatusText>
```
and so on.
## 6.3.2.4.9.1.9  Restart a Failed Application Job
Create a copy of the failed application job and start it from or after the failed step using HTTP method POST .
## Request
You can include the following properties in the URL of the request:
| Property       | Necessity   | Comment                                       |
|----------------|-------------|-----------------------------------------------|
| JobRunCount    | Mandatory   | This is the ID of an application job          |
| JobName        | Mandatory   | This is the name of an application job        |
| JobRestartMode | Mandatory   | This is the type of restart you can trig- ger |
There are two restart modes:
- JobRestartMode='E': Restart the job from the failed step. The job steps before the failed step will be skipped.
- JobRestartMode='A': Restart the job after the failed step. The failed step and the steps before will be skipped.
## Response
The operation restarts a failed application job.
## Examples
## Request
POST &lt;host&gt; /sap/opu/odata/sap/BC\_EXT\_APPJOB\_MANAGEMENT;v=0002/JobRestart? JobName='JobName'&amp;JobRunCount='JobCount'&amp;JobRestartMode='E'
## Response
- &lt;d:JobName&gt;JobName&lt;/d:JobName&gt;
- &lt;d:JobRunCount&gt;JobCount&lt;/d:JobRunCount&gt;
- &lt;d:JobStatus&gt;R&lt;/d:JobStatus&gt;
- &lt;d:ReturnCode&gt;0&lt;/d:ReturnCode&gt;
## 6.3.2.4.9.1.10  Check Parameters for Scheduling a Job
Check the parameter string that you intend to schedule a job with. This call makes the same checks as the Check button contained within the Application Jobs app.
## Request
You can include the following properties in the URL of the request:
| Property           | Necessity   | Comment                                                                                                                                                                                                  |
|--------------------|-------------|----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|
| JobTemplateName    | Mandatory   | This is the name of the application job.                                                                                                                                                                 |
| JobParameterValues | Mandatory   | These are the parameter values of the application job. For more information, see 3383044 .                                                                                                               |
| JobUser            | Optional    | This is the user under whomthe ap- plication job is supposed to run. This field is kept optional for compatibility reasons only. It's recommended to al- ways provide the job user when making the call. |
<!-- image -->
## Response
The operation returns:
- Parameter String: An overview of the supplied parameter string. (In some applications, the supplied parameters can be changed by the framework. In such cases, a string with the changed parameters is returned in the response).
- Successful Indicator: Returns true when the supplied parameters are allowed. Otherwise it will return false .
- Changed Indicator: Returns true if the parameters have been adjusted. Otherwise it will return false .
- Dynamic Properties: &lt;Reserved&gt;
- Error Messages: Shows errors or warnings regarding the supplied parameter string.
## Examples
## Request
POST &lt; host &gt;/sap/opu/odata/SAP/BC\_EXT\_APPJOB\_MANAGEMENT;v=0002/JobScheduleCheck? JobTemplateName='TemplateName'&amp;JobParameterValues='ParameterValueString'&amp;JobUser= 'UserName'
## Response
```
{ "d": { "results": [ { "JobParameterValues": "ParameterValueString", "SuccessfulInd": "boolean", "ChangedInd": "boolean", "DynamicProperties": "", "ErrMessages": "ErrorMessagesString", } ] } }
```
## 6.3.2.4.9.1.11  Retrieve Application Job Parameters
Retrieve the application job parameters as a JSON string. This string can directly be used for scheduling an application job.
## Request (As a String)
You can include the following properties in the URL of the request:
| Property   | Necessity   | Comment                                   |
|------------|-------------|-------------------------------------------|
| JobName    | Mandatory   | This is the name of the application job   |
| JobCount   | Mandatory   | This is an alphanumerical job count value |
## Response
The operation returns:
- Parameter String: A JSON string containing the application job parameters.
## Examples
## Request
POST &lt; host &gt;/sap/opu/odata/SAP/BC\_EXT\_APPJOB\_MANAGEMENT;v=0002/JobParamValuesGet? JobName='JobName'&amp;JobCount='JobCount'
## Response
&lt;d:ParameterValues&gt;{JSONSTRING}&lt;/d:ParameterValues&gt;
## Request (Standard)
Retrieve the application job parameters. You can include the following properties in the URL of the request:
| Property   | Necessity   | Comment                                   |
|------------|-------------|-------------------------------------------|
| JobName    | Mandatory   | This is the name of the application job   |
| JobCount   | Mandatory   | This is an alphanumerical job count value |
## Response
The operation returns:
- Step Number: The number of the step where the parameter exists
- Parameter Name: The name of the parameter
- Sign/Option/Low/High: Values according to ABAP ranges
## Examples
## Request
```
POST < host >/sap/opu/odata/SAP/BC_EXT_APPJOB_MANAGEMENT;v=0002/ JobParamValuesStructGet?JobName='JobName'&JobCount='JobCount'
```
## Response
```
{ "d": { "results": [ { "StepNr": StepNumber, "JobParameterName": "ParameterName", "Sign": "I", "Option": "EQ", "Low": "LowValue", "High": "HighValue"    } ] } }
```
## 6.3.2.4.9.1.12  Retrieve Application Job Template Parameters
Retrieve application job template parameters as a JSON string. This string can directly be used for scheduling an application job.
## Request (As a String)
You can include the following properties in the URL of the request:
| Property        | Necessity   | Comment                                           |
|-----------------|-------------|---------------------------------------------------|
| JobTemplateName | Mandatory   | This is the name of the application job template. |
## Response
The operation returns:
- Parameter String: A JSON string containing the application job template parameters. The parameters not pre-defined in the application job template are also delivered in the response.
## Examples
## Request
GET &lt; host &gt;/sap/opu/odata/SAP/BC\_EXT\_APPJOB\_MANAGEMENT;v=0002/TemplateValuesGet? JobTemplateName='TemplateName'
## Response
&lt;d:ParameterValues&gt;{JSONSTRING}&lt;/d:ParameterValues&gt;
## Request (Standard)
Retrieve the application job parameters. You can include the following properties in the URL of the request:
| Property        | Necessity   | Comment                                           |
|-----------------|-------------|---------------------------------------------------|
| JobTemplateName | Mandatory   | This is the name of the application job template. |
## Response
The operation returns:
- Application job template parameter values
## Examples
## Request
```
GET < host >/sap/opu/odata/SAP/BC_EXT_APPJOB_MANAGEMENT;v=0002/ TemplateValuesStructGet?JobTemplateName='TemplateName'
```
## Response
```
{ "d": { "results": [ { "StepNr": StepNumber, "JobParameterName": "ParameterName", "Sign": "I", "Option": "EQ", "Low": "LowValue", "High": "HighValue"    } ] }
```
## 6.3.2.4.9.2  SAP\_COM\_0326
This communication scenario concerns application job scheduling authorizations.
## Purpose
This inbound OData service enables external systems to schedule an application job based on an application job template.
## Context
If you create a communication arrangement based on SAP\_COM\_0326, your communication user will have the authorization to schedule any application job template under any business user. Furthermore, you'll also have the authorization to run all available operations on application jobs that were created by other users. This means that you can delete or cancel any application job created by any business user.
## Prerequisites
- You've installed an external scheduler
- You have the following business roles assigned to your user:
- Communication Management ( SAP\_CORE\_BC\_COM
## Process Steps
1. Open the Display Communication Scenarios app.
2. Search for the scenario ID SAP\_COM\_0326 and click on it.
3. Select Create Communication Arrangement in the top right corner.
4. Choose a name for your communication arrangement and click Create .
5. You'll now need to create a communication system. To do this, click New next to the field Communication System . For more information on general concepts of communication management, see Communication Management [page 2707].
6. Choose a new System ID and click Create .
##  Note
The System Name is filled automatically with the same name as the ID. We recommend leaving this as it is to prevent confusion.
7. In the General section, mark the Inbound Only checkbox.
8. Now, scroll down to Users for Inbound Communication and click "+" to add a new communication user.
9. Select New User . Enter a user name, a description, and a new password or select Propose Password . Click Create to save the user, then click OK .
##  Note
Please don't use the Certificate section. At the moment, only basic authentication has been implemented.
10. Select Save to save your communication system.
11. You'll be forwarded to your communication arrangement. In the Additional Properties section, you can enter an external job scheduler. These fields are not mandatory.
12. Finally, select Save to save your communication arrangement.
## 6.3.2.4.10  Integrating Factory Calendar
Learn how to integrate an ABAP Platform system with the factory calendar.
## Context
This communication scenario allows you to set up a connection to the import factory calendar customizing from another ABAP client. There can be at most one source client for an ABAP tenant.
## Prerequisites
You have to connect your ABAP system via RFC. To do this, follow the steps described in 3148310 or install the required support package. The following RFC-enabled function modules are called during import:
- SCAL\_TO\_FHC\_MIG\_COMPLETED
- SCAL\_READ\_CUSTOMIZING
- SFHC\_READ\_CUSTOMIZING
## Procedure
1. Create a communication user in the Maintain Communication Users app. For more information, see How to Create Communication Users [page 2710].
2. Create a communication system in the Communication Systems app. For more information, see How to Create Communication Systems [page 2715].
3. Create a communication arrangement for the Factory Calendar Integration scenario ( SAP\_COM\_0834 ) in the Communication Arrangements app. For more information, see How to Create a Communication Arrangement [page 2712].
After creating the communication arrangement, assign the business catalog
SAP\_CA\_BC\_IC\_LND\_CAL\_CA0\_PC or SAP\_CA\_BC\_IC\_LND\_CAL\_CA1\_PC to schedule an application job. The application job is required to pull the data of the three related IMG activities via the connection. The check logic of the application job and the transaction prevent the scheduling and execution in clients where the selected customizing objects are not editable.
##  Note
Existing factory calendar customizing will be overwritten by the import. In case the automatic pull destination is configured, a warning is issued in the customizing maintenance UIs to prevent concurrent changes.
All changes are recorded on a task.
The source of the factory calendar depends on the migration state of the source client:
- If the source client has not yet been migrated, the cross-client calendar will be pulled
- If the source client has been migrated, the client-dependent calendar will be pulled
## 6.3.2.4.11  Integrating Outbound Emails Using SMTP
Learn how to integrate outbound emails using the Simple Message Transfer Protocol (SMTP).
## Procedure
You must define the following configurations in a communication system. See How to Create Communication Systems for more information.
There are two ways to connect an SMTP server.
## Connect publicly available SMTP server:
- Host
- Port
- Disable Cloud Connector
- A referenced outbound communication user with authentication method User and Password
## Advanced - Connect internal SMTP server via Cloud Connector:
- Host
- Port
- Enable Cloud Connector
- A referenced outbound communication user with authentication method User and Password
- SCC Location ID of the SAP BTP Cloud Connector
##  Note
This parameter is only required if several SAP BTP , Cloud connectors are used in one subaccount (to define the target SAP BTP, Cloud Connector with the same SCC Location ID ).
Afterwards, create a communication arrangement for the SAP\_COM\_0548 communication scenario using this communication system.
## Related Information
Communication Systems [page 2714]
How to Create a Communication Arrangement [page 2712] Integrating On-Premise Systems [page 1099] Configure Access Control (TCP) Sending Mails Using SMTP
## 6.3.2.4.12  Integrating SAP Enable Now Manager
The ABAP environment supports the extended content scenario of SAP Enable Now that allows you to add an additional source for help content to the SAP Companion plugin. You can edit the context-sensitive in-app help delivered by SAP and adapt it to your needs or include your own content.
To use the SAP Enable Now Manager, you have to create a communication arrangement that uses communication scenario SAP\_COM\_0011 .
In addition, you have to install the SAP Enable Now Manager.
If you need further information, see the SAP Companion Integration guide. The specifics for the ABAP environment are described in section Set Up of SAP Companion for SAP S/4HANA Cloud and Similar Systems .
## Related Information
SAP Enable Now SAP Companion Authoring
## 6.3.2.4.14  Integrating SAP Build Process Automation
You can integrate your ABAP environment with SAP Build Process Automation.
## 6.3.2.4.14.1  Configuring the SAP Build Process Automation Integration
You can enable the communication between the ABAP environment and SAP Build Process Automation.
This scenario enables ABAP environment applications to extend their business workflows or business processes with workflow capability of SAP Build Process Automation. It allows the provisioning of an API in the ABAP environment to start and control workflow instances running on workflow capability.
You set up the scenario using the following tasks:
1. Create a Communication Arrangement Using a Service Key [page 3037] (recommended)
2. Create Destinations [page 3038]
3. AIF Monitoring [page 3045]
## 6.3.2.4.14.1.1  Create a Communication Arrangement Using a Service Key
To connect the ABAP environment and SAP Build Process Automation, you need a communication arrangement.
## Procedure
1. Get the service key.
- a. In the SAP BTP cockpit, navigate to your space. See Navigate to Orgs and Spaces.
- b. From the navigation pane, choose Services Service Instances .
- c. Click the name of your SAP Build Process Automation instance.
- d. From the navigation pane, choose Service Keys .
- e. Select one entry, and copy the service key.
2. Open the Communication Arrangements app in your SAP S/4HANA Cloud system.
3. Create a communication arrangement.
4. Choose scenario SAP\_COM\_0863 .
5. Enter a name for the arrangement.
6. Choose Additional Properties and enter:
- Consumer Type (Workflow) - This is the default.
- Optional. Consumer Type (Visibility)
Choose the types relevant for SAP applications according to their documentation.
- Others: Leave empty.
7. Select a communication user (of which you know the password) or create a new one to use for inbound communication (from SAP BTP to your ABAP environment).
8. Paste the service key into the corresponding field, and choose Create .
The password of the newly created user for the inbound communication is shown in an information message in the status bar. You need the user and password for maintaining a destination in SAP BTP.
## Results
You've created the communication arrangement, the communication system, and an inbound user. The consumer type is used to identify the communication arrangement. Therefore, you must only assign it to exactly one communication arrangement. You can assign multiple consumer types to one communication arrangement.
Consumer types can be added or removed later from the communication arrangement, if needed.
## 6.3.2.4.14.1.3  Model Action Project to Notify the ABAP Environment About Workflow Completion
As the workflow capability within SAP Build Process Automation doesn't support the enterprise messaging service, you must model an additional action right before each end event for each process definition, that was
started from the ABAP environment. This action calls an inbound service and notifies the ABAP Environment that the process that has been started on SAP Build Process Automation is now completed.
## Prerequisites
You've modeled a project with a process within SAP Build.
## Context
The action triggers the completion in the ABAP environment tenant and must be called exactly once.
With this approach, cancellations on workflow instances directly from the workflow capability API aren't communicated to the ABAP environment tenant.
## Procedure
1. Create a new project in SAP Build by choosing Build an Automated Process Actions .
2. Upload the API specification.
```
 Sample Code <?xml version="1.0" encoding="utf-8"?> <edmx:Edmx Version="4.0" xmlns:edmx="http://docs.oasis-open.org/odata/ns/ edmx" xmlns="http://docs.oasis-open.org/odata/ns/edm"> <edmx:DataServices> <Schema Namespace="com.sap.gateway.default.api_workflow_notification.v0001" Alias="SAP__self"> <ComplexType Name="CT_NOTIFICATION_RESULT"> <Property Name="notificationProcessed" Type="Edm.Boolean" Nullable="false"/> </ComplexType> <Action Name="ProcessCompleted"> <Parameter Name="workflowInstanceId" Type="Edm.String" Nullable="false" MaxLength="36"/> <Parameter Name="outcome" Type="Edm.String" Nullable="false" MaxLength="255"/> <ReturnType Type="com.sap.gateway.default.api_workflow_notification.v0001.CT_NOTIFICATI ON_RESULT" Nullable="false"/> </Action> <EntityContainer Name="Container"> <ActionImport Name="ProcessCompleted" Action="com.sap.gateway.default.api_workflow_notification.v0001.ProcessComp leted"/> </EntityContainer> </Schema> </edmx:DataServices> </edmx:Edmx>
```
3. Enter a project name.
4. In the Add actions … dialog, choose only the service operation POST /Process Completed and then choose Add .
5. Modify the project settings as follows
- a. Enable CSRF tokens for all actions in the project, and set Token Fetch End Point to '/' .
- b. Set the URL prefix to '/sap/opu/odata4/sap/api\_workflow\_notification/default/sap/ api\_workflow\_notification/0001' .
6. Save the project.
7. Release the project and publish it to the library.
## Using the Action in a Process
## Procedure
1. Include a new action step as last step in your process by choosing Actions Browse Library .
2. Search for 'Invoke action ProcessCompleted' and choose Add .
3. Specify a destination variable in the action step details - create a new variable if necessary.
4. Configure the inputs of the action step.
- a. From Process Metadata , assign Process Instance Id to the workflowInstanceId input.
- b. Optional. To communicate the result of the process, assign any relevant variable to the outcome input.
<!-- image -->
<!-- image -->
5. When deploying your project, specify the destination created in the SAP BTP cockpit for the destination variable used in the action step.
## 6.3.2.4.14.1.3.1  Using the Workflow Proxy API on SAP BTP ABAP Environment
To start and control a workflow process on SAP Build Process Automation from your application running in the SAP BTP ABAP environment, the following released APIs can be used.
| Artifact                    | Description                                                                  |
|-----------------------------|------------------------------------------------------------------------------|
| CL_SWF_CPWF_API_FACTORY_A4C | Factory for instantiating an API instance                                    |
| IF_SWF_CPWF_API             | Actual API interface                                                         |
| I_CPWF_INST                 | RAP façade for the workflow API to be used within RAP be- havior definitions |
For more information, see the ABAP documentation of these objects in the system.
## 6.3.2.4.14.1.4  Modeling Extension Processes
As the SAP Build Process Automation processes don't integrate using SAP Event Mesh, you must ensure the communication back to SAP S/4HANA Cloud through the process models.
## Prerequisites
- You've created the destination for the workflow capability integration. See Create Destinations [page 3038].
- You have the necessary roles to develop and deploy SAP Build Process Automation projects. See Managing Project Members.
## Context
To ensure the communication, you have to model an additional service task right before each end event for each process, that was started from SAP S/4HANA Cloud.
##  Note
Cancellations of process instances on SAP Build Process Automation aren't communicated to the SAP S/4HANA Cloud system.
## Procedure
1. To create an action for communicating the process completion to the SAP S/4HANA Cloud system, create an actions project. See Model Action Project to Notify the ABAP Environment About Workflow Completion [page 3039].
2. Create a SAP Build Process Automation process.
- a. Create a business project. See Create a Business Process Project.
- b. Create a data type for the input of the process.
The data type is for receiving the input from the SAP S/4HANA Cloud system. You assign it to the process trigger. Choosing New Field, you enter the following Names:
- SystemID
- SAPObjectNodeType
- SAPObjectNodeTypeKey
- Result
Add children to the SAPObjectNodeTypeKey field and name them Key1 to Key6 .
The data type then looks as follows:
<!-- image -->
- c. Create a business process. See Create a Business Process.
- d. Receive the input from the SAP S/4HANA Cloud system.
1. Select the trigger tile.
2. Open the Inputs/Outputs tab.
3. Choose Configure next to Process Inputs .
4. Choose add Input .
5. Enter ExchangeData in the Name field, and select the previously created data type.
6. Choose Apply .
3. Communicate the process completion to the SAP S/4HANA Cloud system.
- a. Add the action that you created before each end event. For information about how to add actions, see Add Actions to a Process.
- b. On the General tab, create a destination variable for the completion callback so that you can map it to the destination on deployment.
- c. On the Inputs tab, assign Process Metadata Process Instance Id to the workflowInstanceId input of the action.
- d. Optional: On the Inputs tab, assign any variable to the outcome input of the action to indicate the result of the extension process to the caller.
4. Release your project.
5. Deploy your project.
- a. In the Runtime Variables step, assign the destination for the workflow capability integration to the destination variable that you created.
## Related Information
Configure Service Tasks
## 6.3.2.4.14.2  AIF Monitoring
The Application Interface Framework (AIF) enables you to monitor background communication with your connected SAP Build Process Automation tenant.
## Procedure
First, you need to assign business roles to a business user and then to assign recipients to this user.
## 6.3.2.4.14.2.1  Maintain Business Roles and Business Users
As a preparation to monitor messages for the integration of the SAP Build Process Automation, you assign business roles to a business user.
## Procedure
1. Log on to the SAP Fiori launchpad as an administrator user.
2. With the Maintain Business Roles app, create and edit business roles and add business catalogs to the roles.
- a. To grant access to the Assign Recipients to Users app, add the business catalog Communication Management - Message Monitoring Configuration (SAP\_CA\_BC\_COM\_CONF\_PC) to a business role.
- b. To grant access to the Message Dashboard app, add the business catalog Business Network Integration (SAP\_BR\_CONF\_EXPERT\_BUS\_NET\_INT) to a business role.
Both business catalogs are also contained in the business role template Configuration Expert - Business Network Integration (SAP\_BR\_CONF\_EXPERT\_BUS\_NET\_INT).
3. With the Maintain Business User app, provide business users with access rights.
## 6.3.2.4.14.2.2  Monitor Messages for SAP Build Process Automation Integration
You can monitor the background processes for the integration of the SAP Build Process Automation.
## Prerequisites
You have assigned business roles and business users.
## Context
With the Message Dashboard or Message Monitoring Overview , you can monitor and administrate the SAP Build Process Automation background processing. You can manually trigger or cancel monitored background tasks that have issues.
AIF messages are deleted after a retention time, which can be configured in AIF customizing. The default value for all workflow-relevant namespaces and interfaces is set to 7 days.
## Procedure
1. Log on to the SAP Fiori launchpad as an administrator user.
2. With the Assign Recipients to Users app, assign the corresponding recipients to a business user.
- a. Select the user for which you want to perform the assignment.
- b. Repeatedly choose Assign and successively enter the following recipients:
| Namespace                                  | Recipient                                                                   |
|--------------------------------------------|-----------------------------------------------------------------------------|
| /SWFCP (for workflow capability)           | REC_PROC_BGRFC (process bgRFC) REC_RAISE_EVT (Recipient for raise of event) |
| /SWFPV (for process visibility capability) | EVENT_PUBL (Process bgRFC)                                                  |
Also choose the message types that the user is allowed to view.
For more information, see Assigning Users to Recipients.
3. To view the results, open the Message Dashboard app.
4. To view the triggered messages, use the Calendar Monitor to select the date range and choose Search .
5. Alternatively, view the results with the Message Monitoring Overview app.
The overview displays the interfaces and message types to which you're subscribed. To see more details, click a message type.
## Related Information
Blog on Working with the Message Dashboard
## 6.3.2.4.15  Integrating SAP Workflow Management
You can enable the communication between the ABAP environment and the workflow capability within the SAP Workflow Management service.
This scenario enables the ABAP environment applications to extend their business processes by using the workflow capability in the Cloud Foundry environment. It allows the provisioning of an API in the ABAP environment to start and control workflow instances running on workflow capability.
You set up the scenario using the following tasks:
1. Create a Communication Arrangement Using a Service Key [page 3047] (recommended)
2. Create a Destination [page 3048]
3. Maintain Business Roles and Business Users [page 3052]
## 6.3.2.4.15.1  Create a Communication Arrangement Using a Service Key
To connect the ABAP environment and the SAP BTP cockpit, you need a communication arrangement.
## Procedure
1. Get the service key.
- a. In the SAP BTP cockpit, navigate to your space. See Navigate to Orgs and Spaces.
- b. From the navigation pane, choose Services Service Instances .
- c. Click the name of your workflow capability instance.
- d. From the navigation pane, choose Service Keys .
- e. Select one entry, and copy the service key.
2. Open the Communication Arrangements app in your ABAP environment.
3. Create a communication arrangement.
4. Choose scenario SAP\_COM\_0542 .
5. Enter a name for the arrangement.
6. Select a communication user to use for inbound communication (from SAP Business Technology Platform to your ABAP environment).
7. Paste the service key into the corresponding field, and choose Create .
The password of the newly created user for the inbound communication is shown in an information message in the status bar. You need the user and password for the destination in theSAP Business Technology Platform.
## Results
You've created the communication arrangement, the communication system, and an inbound user. The communication arrangement is assigned to the DEFAULT consumer type. The consumer type is used to identify the communication arrangement. Therefore, you must only assign it to exactly one communication arrangement. You can assign one communication arrangement to multiple consumer types.
## Adjust the Consumer Type
## Procedure
1. Select the communication arrangement, and choose Edit .
2. Set the consumer type to DEFAULT.
## 6.3.2.4.15.3  Set Scopes for the Service Instance Using the Command Line Interface
To set the necessary scopes of a service instance, you need to install a new service interface with all scopes needed or you update an already existing service interface.
## Procedure
1. To update the workflow capability instance with the necessary scopes, save the following JSON file that specifies all necessary scopes:
```
{ "authorities": [ "WORKFLOW_INSTANCE_START", "WORKFLOW_DEFINITION_GET", "WORKFLOW_INSTANCE_GET", "WORKFLOW_INSTANCES_UPDATE", "WORKFLOW_INSTANCE_CANCEL", "WORKFLOW_INSTANCE_GET_ERROR_MESSAGES", "WORKFLOW_INSTANCE_GET_CONTEXT", "WORKFLOW_INSTANCE_GET_EXECUTION_LOGS", "MESSAGE_SEND", "TASK_GET" ] }
```
To set these scopes, see Update an existing service instance in Enable Technical Authentication.
2. Model the workflow as described in Developing Applications with Workflow Capability.
## 6.3.2.4.15.4  Model Service Task to Complete the Workflow in the ABAP Environment
As the workflow capability doesn't support the enterprise messaging service, you must model an additional service task right before each end event for each workflow definition, that was started from the ABAP environment.
## Prerequisites
You have modeled a workflow. See Modeling a Workflow.
## Context
This task triggers the completion in the ABAP environment tenant and must be called exactly once.
<!-- image -->
With this approach, cancellations on workflow instances directly from the workflow capability API aren't communicated to the ABAP environment tenant.
## Procedure
1. Open the workflow that you have modeled in the workflow editor.
2. Select the service task, and go to the DETAILS tab.
## 3. Enter the following data:
| Field                 | Value                                                                                                           |
|-----------------------|-----------------------------------------------------------------------------------------------------------------|
| Destination           | Enter the name of the destination you've created in Cloud Foundry.                                              |
| Choose a Service from | Others                                                                                                          |
| Path                  | /sap/opu/odata/sap/SWF_CPWF_NOTIFICATION_SRV/ ProcessCompleted?workflowInstanceId='$ {info.workflowInstanceId}' |
| HTTP Method           | POST                                                                                                            |
| Path to XSRF Token    | /sap/opu/odata/sap/SWF_CPWF_NOTIFICATION_SRV/                                                                   |