---
parser: v2
auto_validation: true
time: 15
tags: [tutorial>beginner, topic>machine-learning, topic>artificial-intelligence, topic>cloud, software-product>sap-business-technology-platform, software-product>sap-ai-services, software-product>data-attribute-recommendation, tutorial>free-tier]
primary_tag: topic>machine-learning
author_name: Juliana Morais
author_profile: https://github.com/Juliana-Morais
slug: cp-aibus-dar-swagger-soc-model
canonical_url: https://developers.sap.com/tutorials/cp-aibus-dar-swagger-soc-model
---

# Use the Sales Order Completion (SOC) Business Blueprint to Train a Machine Learning Model
<!-- description --> Train a machine learning model for the Data Attribute Recommendation service, using the Sales Order Completion (SOC) business blueprint.

## You will learn
  - How to train a machine learning model using the Sales Order Completion (SOC) business blueprint
  - How to deploy a machine learning model to get predictions for missing fields in sales order documents

---

### Authorize Swagger UI


In the service key you created for Data Attribute Recommendation in the previous tutorial: [Use Free Tier to Set Up Account for Data Attribute Recommendation and Get Service Key](cp-aibus-dar-booster-free-key) or [Use Trial to Set Up Account for Data Attribute Recommendation and Get Service Key](cp-aibus-dar-booster-key), you find a section called `swagger` (as highlighted in the image below) with three entries, called `dm` (data manager), `mm` (model manager) and `inference`.

![Service Key](https://raw.githubusercontent.com/sap-tutorials/Tutorials/master/tutorials/cp-aibus-dar-swagger-soc-model/service-key-details.png)

For this tutorial, copy the URL of the Swagger UI for `mm` and open it in a browser tab. The Swagger UI for the model manager allows you to train a machine learning model, to delete it, to deploy the model as well as to `undeploy` the model.

>After finishing this tutorial, keep the Swagger UI for `mm` open to perform the clean up tasks in [Use the Sales Order Completion (SOC) Business Blueprint to Predict Missing Sales Order Fields](cp-aibus-dar-swagger-soc-predict).

1. To be able to use the Swagger UI endpoints, you need to authorize yourself. In the top right corner, click **Authorize**.

    ![Authorize](https://raw.githubusercontent.com/sap-tutorials/Tutorials/master/tutorials/cp-aibus-dar-swagger-soc-model/swagger-authorize.png)

2. Get the `access_token` value created in the previous tutorial: [Get OAuth Access Token for Data Attribute Recommendation Using Any Web Browser](cp-aibus-dar-web-oauth-token), then add **Bearer** (with capitalized "B") in front of it, and enter in the **Value** field.

   ```
   Bearer <access_token>
   ```

3. Click **Authorize** and then click **Close**.

    ![Authorize](https://raw.githubusercontent.com/sap-tutorials/Tutorials/master/tutorials/cp-aibus-dar-swagger-soc-model/swagger-token.png)



### Create a training job


To train a machine learning model using the data that you uploaded in [Use a Sales Order Completion (SOC) Dataset Schema to Upload Training Data to Data Attribute Recommendation](cp-aibus-dar-swagger-soc-upload), you create a training job.

With each training job you provide a model template or a business blueprint which combines data processing rules and machine learning model architecture. You can find the list of available model templates [here](https://help.sap.com/docs/Data_Attribute_Recommendation/105bcfd88921418e8c29b24a7a402ec3/1e76e8c636974a06967552c05d40e066.html), and the list of available business blueprints [here](https://help.sap.com/docs/Data_Attribute_Recommendation/105bcfd88921418e8c29b24a7a402ec3/091eace025e14793be0e83ef2109b349.html).

The Sales Order Completion (SOC) business blueprint that you use in this tutorial is suited to predict missing sales order fields that are needed for completion.

To create the training job, proceed as follows:

1. Expand the endpoint **POST /jobs** by clicking on it. Then click **Try it out**.

    ![Training Job Endpoint](https://raw.githubusercontent.com/sap-tutorials/Tutorials/master/tutorials/cp-aibus-dar-swagger-soc-model/job-endpoint.png)

2. In the text area, replace the parameter value for `datasetId` with the `id` of your dataset that you have created in [Use a Sales Order Completion (SOC) Dataset Schema to Upload Training Data to Data Attribute Recommendation](cp-aibus-dar-swagger-soc-upload). Delete the `modelTemplateId` line from the **Request body**. Replace the parameter value `modelName` with your model name, `soc_tutorial_model`, for example. Make sure the parameter value for `businessBlueprintId` is `9d15125d-2b7b-4136-8872-1ddd337cf36f`, which is the ID of the SOC business blueprint. Click **Execute** to create the training job.

    ![Training Job Execute](https://raw.githubusercontent.com/sap-tutorials/Tutorials/master/tutorials/cp-aibus-dar-swagger-soc-model/job-execute.png)

3. In the response of the service, you find the `id` of your training job. Copy the `id` as you'll need it in the next step. Along side the `id`, you find the training job's current status. Initially, the status is `PENDING` which says that the training job is in queue but has not started yet.

    ![Training Job Response](https://raw.githubusercontent.com/sap-tutorials/Tutorials/master/tutorials/cp-aibus-dar-swagger-soc-model/job-response.png)

You have successfully created a training job.



### Check training job status


To know when your training job has ended, you have to frequently check its status. For that, proceed as follows:

1. Expand the endpoint `GET /jobs/{jobId}` by clicking on it. Then click **Try it out**.

    ![Training Job Status Endpoint](https://raw.githubusercontent.com/sap-tutorials/Tutorials/master/tutorials/cp-aibus-dar-swagger-soc-model/job-status-endpoint.png)

2. Fill the parameter `jobId` with `id` of your training job that you copied in the previous step. Click **Execute**.

    ![Training Job Status Execute](https://raw.githubusercontent.com/sap-tutorials/Tutorials/master/tutorials/cp-aibus-dar-swagger-soc-model/job-status-execute.png)

3. In the response, you find again the current status of your training job along with other details. Immediately after creation of the training job, the status is `PENDING`. Shortly after, it changes to `RUNNING` which means that the model is being trained. The training of the sample data usually takes about 5 minutes to complete but may run longer, up to a few hours due to limited availability of resources in the free tier environment. You can check the status every now and then. Once training is finished, the status changes to `SUCCEEDED` which means the service has created a machine learning model and you can proceed.

    ![Training Job Status Response](https://raw.githubusercontent.com/sap-tutorials/Tutorials/master/tutorials/cp-aibus-dar-swagger-soc-model/job-status-response.png)

You have successfully trained a machine learning model.



### Deploy machine learning model


To use the trained model, you need to deploy it. Once deployed, the model is ready to make predictions. To deploy your model, proceed as follows:

1. Expand the endpoint `POST /deployments` by clicking on it. Then click **Try it out**.

    ![Deployment Endpoint](https://raw.githubusercontent.com/sap-tutorials/Tutorials/master/tutorials/cp-aibus-dar-swagger-soc-model/deploy-endpoint.png)

2. In the text area, replace the parameter `modelName` with the name of your model (`soc_tutorial_model`). Click **Execute** to deploy the model.

    ![Deployment Execute](https://raw.githubusercontent.com/sap-tutorials/Tutorials/master/tutorials/cp-aibus-dar-swagger-soc-model/deploy-execute.png)

3. In the response of the service, you find the `id` of the deployment and its status. Initially, the status is `PENDING`, indicating the deployment is in progress. Make sure to copy the `id` as you need it in the next step.

    ![Deployment Response](https://raw.githubusercontent.com/sap-tutorials/Tutorials/master/tutorials/cp-aibus-dar-swagger-soc-model/deploy-response.png)



### Check deployment status


Finally, you have to ensure that your model is deployed successfully in order to use it for predictions. To check the status of your deployment, proceed as follows:

1. Expand the endpoint `GET /deployments/{id}` by clicking on it. Then click **Try it out**.

    ![Deployment Status Endpoint](https://raw.githubusercontent.com/sap-tutorials/Tutorials/master/tutorials/cp-aibus-dar-swagger-soc-model/deploy-status-endpoint.png)

2. Fill the parameter `deploymentId` with the `id` of your deployment that you copied in the previous step. Click **Execute**.

    ![Deployment Status Execute](https://raw.githubusercontent.com/sap-tutorials/Tutorials/master/tutorials/cp-aibus-dar-swagger-soc-model/deploy-status-execute.png)

3. In the response of the service, you find the current status of the deployment. If the status is `SUCCEEDED`, your deployment is done. If the status is still `PENDING`, check back in a few minutes.

    ![Deployment Status Execute](https://raw.githubusercontent.com/sap-tutorials/Tutorials/master/tutorials/cp-aibus-dar-swagger-soc-model/deploy-status-response.png)

You have successfully trained a machine learning model and deployed it. Next, you'll use your model to make predictions.