> For the complete documentation index, see [llms.txt](https://docs.theconfigteam.com/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://docs.theconfigteam.com/prebilt-ewm/installation/prebilt-standalone-edition-installation/backend-installation.md).

# Backend installation

{% hint style="info" %}
**Prerequisite**

This section assumes a certain familiarity with ABAP Development.

Transport, Package and Naming Conventions should be discussed and provided. See [Checklist](/prebilt-ewm/installation/prebilt-standalone-edition-installation/import-the-base-framework.md#preparation-checklist).
{% endhint %}

## Create Package *(optional)*

This step is only required if the agreed upon package  does not exist yet.

Create the agreed-upon SAP Package (e.g. ZTCTM\_EWM) using transaction *SE80* or *ABAP in Eclipse*.

<figure><img src="https://1016750988-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F7lFTpSLijn44pippdL6u%2Fuploads%2FTGKXf4UOyPv0fZbg1v3g%2Fimage.png?alt=media&amp;token=1782059f-9acd-43d7-b4f1-70e334c6c45a" alt=""><figcaption></figcaption></figure>

Populate the agreed fields and click 'Continue'.

<figure><img src="https://1016750988-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F7lFTpSLijn44pippdL6u%2Fuploads%2FQnB6thZ8Lu7DjA4FX4zu%2Fimage.png?alt=media&amp;token=5d499966-bbff-45dd-838e-a00815d20ad5" alt=""><figcaption></figcaption></figure>

Assign the implementation to the transport provided.

## Activate RF Flow BAdIs

{% hint style="info" %}
**Note**

PreBilt EWM requires both RF `PRE` and `POST` Flow RF BAdIs to deliver important PreBilt functionality.

Any pre-existing implementation for those BAdIs should be moved in to a new BAdI implementation for BAdI `/TCTM/EX_EWM_RF_FLOW_POST` (same interface as the SAP standard one, so the existing custom implementation class can be reused).
{% endhint %}

Create BAdI implementation for `/SCWM/EX_RF_FLOW_POST` and `/SCWM/EX_RF_FLOW_PRE` with class `/TCTM/EWM_FLOW_BADIS`.

In transaction *SE19*, create a new Implementation for Enhancement Spot `/SCWM/ES_RF_FLOW`

<figure><img src="https://1016750988-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F7lFTpSLijn44pippdL6u%2Fuploads%2FjqR8WUlm4CLgyN6BlrCz%2Fimage.png?alt=media&amp;token=4d4da209-cf11-438a-b6de-b110e0a1f90d" alt=""><figcaption></figcaption></figure>

Create the implementation in accordance with the agreed-upon Naming Conventions. <br>

<figure><img src="https://1016750988-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F7lFTpSLijn44pippdL6u%2Fuploads%2FhwsGgoBb2Kk8SoV3ovVY%2Fimage.png?alt=media&amp;token=f9e76a36-9266-40ab-8939-bf5ed68f4127" alt=""><figcaption></figcaption></figure>

Create the BAdI Implementations for <kbd>/SCWM/EX\_RF\_FLOW\_PRE</kbd> and <kbd>/SCWM/EX\_RF\_FLOW\_POST</kbd> with a Naming-Convention aligned implementation name and implementation class <kbd>/TCTM/EWM\_FLOW\_BADIS</kbd>

<figure><img src="https://1016750988-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F7lFTpSLijn44pippdL6u%2Fuploads%2FUWvEQv2N1Su7lMvhlAH9%2Fimage.png?alt=media&amp;token=621a670f-6490-46fc-8bb8-159fa7b90b80" alt=""><figcaption></figcaption></figure>

Activate the Enhancement Implementation to set its status to "Active"

<figure><img src="https://1016750988-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F7lFTpSLijn44pippdL6u%2Fuploads%2FwKnzFsiEzbqnYj7HQAqI%2Fimage.png?alt=media&amp;token=d8c42c07-e7b1-4932-bef9-3711a02c010a" alt=""><figcaption></figcaption></figure>

The RF Flow BAdIs are now activated.

## Activate the Performance Check BAdI

Similar to the previous chapter, create a new Enhancement Implementation for Enhancement Spot `/SCWM/ES_RF_PERF_CHK` in transaction `SE19`.

<figure><img src="https://1016750988-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F7lFTpSLijn44pippdL6u%2Fuploads%2F9GAzfLWyQHv9JyX4NEIH%2Fimage.png?alt=media&amp;token=9b51616a-7754-40a3-990a-1715332e80e3" alt=""><figcaption></figcaption></figure>

<figure><img src="https://1016750988-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F7lFTpSLijn44pippdL6u%2Fuploads%2FpJ8zhDweyv6N4nLPTPOg%2Fimage.png?alt=media&amp;token=87fc02b9-497d-4382-9751-e2e4bd30a6a9" alt=""><figcaption></figcaption></figure>

Create a BAdI implementation for `/SCWM/EX_RF_PERF_BEFORE_SCR` and provide class `/TCTM/EWM_FLOW_BADIS` as in the step above (the class implements multiple interfaces).

<figure><img src="https://1016750988-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F7lFTpSLijn44pippdL6u%2Fuploads%2FAMRVSlSLVvBDkDu82Szg%2Fimage.png?alt=media&amp;token=19164ea0-7263-427b-9328-595c5da65a4b" alt=""><figcaption></figcaption></figure>

Activate the implementation to finish

<figure><img src="https://1016750988-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F7lFTpSLijn44pippdL6u%2Fuploads%2Fu8B70BlSGjkKxrcSc8mj%2Fimage.png?alt=media&amp;token=366522e6-045a-4c3d-b3fc-82f39e4c031c" alt=""><figcaption></figcaption></figure>

## Activate the TCT RF Manager BAdI

In transaction *SE19*, create an implementation for Enhancement Spot `/TCTC/ES_EWM_RFUI` .

<figure><img src="https://1016750988-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F7lFTpSLijn44pippdL6u%2Fuploads%2F0nYi1SErmr01tAa1CwV8%2Fimage.png?alt=media&amp;token=7ccdf34d-23c2-43ae-9902-d08bd446d474" alt=""><figcaption></figcaption></figure>

<figure><img src="https://1016750988-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F7lFTpSLijn44pippdL6u%2Fuploads%2FkXukwHLh0iuGfcRJI6IS%2Fimage.png?alt=media&amp;token=40ffde02-27f5-4f9b-970b-e27177f9142e" alt=""><figcaption></figcaption></figure>

Create the BAdI implementation for <kbd>/TCTC/EX\_EWM\_RFUI\_GET\_MANAGER</kbd> with implementation class <kbd>/TCTM/EWM\_MANAGER</kbd> .

<figure><img src="https://1016750988-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F7lFTpSLijn44pippdL6u%2Fuploads%2FAKXs1T2nrcVmKkZj2Jwh%2Fimage.png?alt=media&amp;token=884a49f1-1411-4ff8-a7fe-ce7b30107577" alt=""><figcaption></figcaption></figure>

Activate the Enhancement Implementation and ensure it is set to "Active"

<figure><img src="https://1016750988-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F7lFTpSLijn44pippdL6u%2Fuploads%2FGIqhnMOdYSxpUsSY9j2Y%2Fimage.png?alt=media&amp;token=20730bfe-4d1e-4490-a70b-5507a2a54246" alt=""><figcaption></figcaption></figure>

## Create the ITS service

In transaction *SE80*, under the agreed-upon package, create a service implementation. Preferably named ZTCTM\_EWM (so no ICF changes are required).

{% hint style="info" %}
**Note**

If your naming conventions require a different name, ensure the ICF node in /tctm\_ewm/its is copied and adjusted to the correct name.

In this case, the Front-End must be build in a manner that supports the changed ICF node (can be configured)

<img src="https://1016750988-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F7lFTpSLijn44pippdL6u%2Fuploads%2FgYThQ6QQvNlF58ETjT7G%2Fimage.png?alt=media&amp;token=c3eaf707-78a3-4852-bd34-912a77f979b9" alt="" data-size="original">

{% endhint %}

To do this, right click on the object and select 'Create' -> 'Other (1)' -> Internet Service.<br>

<figure><img src="https://1016750988-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F7lFTpSLijn44pippdL6u%2Fuploads%2FUrLlwwImyDprARx6ADyC%2Fimage.png?alt=media&amp;token=395b7278-77e3-4197-a73a-222d2af01f9e" alt=""><figcaption></figcaption></figure>

In the pop-up screen, enter the details:

* Internet Service: <kbd>ZTCTM\_EWM</kbd>
* Transaction Code: <kbd>/SCWM/RFUI</kbd>

<figure><img src="https://1016750988-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F7lFTpSLijn44pippdL6u%2Fuploads%2FDkjY2Gy7oWxujBm1uV2M%2Fimage.png?alt=media&amp;token=80fbe2ec-34f1-4077-b890-73ad3492ee34" alt=""><figcaption></figcaption></figure>

Save the package and the transport.

Enter the description <kbd>TCT Mobility ITS Mobile Intergration</kbd> in the short text field and click 'Save'.

<figure><img src="https://1016750988-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F7lFTpSLijn44pippdL6u%2Fuploads%2FTROKpYYrIyIznutLcnHQ%2Fimage.png?alt=media&amp;token=631da545-a26f-4091-81d5-5db487cd777a" alt=""><figcaption></figcaption></figure>

## Activate SICF nodes

{% hint style="info" %}
**Note**

Ensure that any services requiring activation are fully activated in all environments and clients throughout the project.
{% endhint %}

In transaction *SICF*, search for all TCTM nodes.

<figure><img src="https://1016750988-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F7lFTpSLijn44pippdL6u%2Fuploads%2FMacOGH6aoikIgeGUzmYd%2Fimage.png?alt=media&amp;token=4ac2a789-1683-4e38-a83b-01d6911b5a2d" alt=""><figcaption></figcaption></figure>

Activate all three of them (including sub-nodes) by right clicking the service and clicking 'Activate Service'. When prompted to confirm, use the 'Yes including subnodes' button.

<figure><img src="https://1016750988-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F7lFTpSLijn44pippdL6u%2Fuploads%2FL0vx7qEgFpDafb74S8NW%2Fimage.png?alt=media&amp;token=2ace3c6c-1cf4-4609-ac75-4a9dff164585" alt=""><figcaption></figcaption></figure>

<figure><img src="https://1016750988-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F7lFTpSLijn44pippdL6u%2Fuploads%2FupMIot0cTt7ayPQqJ3Jf%2Fimage.png?alt=media&amp;token=1036e93e-21ae-4445-a4c5-8b2442ed3f15" alt=""><figcaption></figcaption></figure>

## Create the EWM RF application parameter

In transaction *SPRO* under the EWM customizing node `SCM Extended Warehouse Management > Extended Warehouse Management > Mobile Data Entry > Radio Frequency (RF) Framework > Define Steps in Logical Transactions` , click 'New Entries' in the Define Application Parameters structure.

<figure><img src="https://1016750988-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F7lFTpSLijn44pippdL6u%2Fuploads%2F96sbpZZEwVE9Ir1uk6mY%2Fimage.png?alt=media&amp;token=69566d99-4c85-477a-91b2-c17a84ce43e0" alt=""><figcaption></figcaption></figure>

Create a new RF Application Parameter:

* Appl. Parameter Name: <kbd>TCTM\_UI\_DATA</kbd>
* Parameter Type: <kbd>/TCTM/EWM\_S\_RF\_UI\_DATA</kbd>

<figure><img src="https://1016750988-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F7lFTpSLijn44pippdL6u%2Fuploads%2FvHH4lgpBUJUj1GmCVYqg%2Fimage.png?alt=media&amp;token=77ddcc3a-e220-4657-abf0-ac8f6f3bb6ec" alt=""><figcaption></figcaption></figure>

Click 'Save'.

{% hint style="info" %}
**Note**

If you receive a namespace error, press Enter.
{% endhint %}

Assign the new entry to a transport.

## Create a display profile

To use PreBilt for EWM and customise screen appearances, you first need to create a new Display Profile in the standard RF framework. It's recommended to have separate Display Profiles for devices with differing screen sizes or layouts (e.g., handheld, vehicle-mounted, tablet) to allow when configuring the appearance of screens using the PreBilt customising toolkit.

Create one display profile per device type which will use PreBilt for EWM.

In transaction *SPRO* under the EWM customizing node `Mobile Data Entry > Radio Frequency (RF) Framework > RF Screen Manager`:

<figure><img src="https://1016750988-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F7lFTpSLijn44pippdL6u%2Fuploads%2F4wWfnlcpCi12QsSBPZTu%2Fimage.png?alt=media&amp;token=c59a77a8-d0b2-47b2-95b2-8f64bac79f51" alt=""><figcaption></figcaption></figure>

Copy the standard \*\* display profile.

Assign to a transport and click the green tick.

{% hint style="danger" %}
**IMPORTANT**

The next step is critical, and details should be completed exactly as provided.
{% endhint %}

Fill out the popup as displayed below, adjust the Destination Display Profile Name as required.

<figure><img src="https://1016750988-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F7lFTpSLijn44pippdL6u%2Fuploads%2FjD5Ln6JadGbIWUi1PWKj%2Fimage.png?alt=media&amp;token=327a7de2-389c-44d1-b73f-c02f77ec2f42" alt=""><figcaption></figcaption></figure>

Note to use Function Group */TCTM/EWM\_UI\_TEMPL* with screens 1000 and 1001 as shown on the image above. This function group assumes the standard height/width of 8x40.

Set the *Pushb.Qty* to the amount of push buttons visible in the bottom bar of the screen.

The SAP system will prompt that the function module already exists, but this can be ignored.

<figure><img src="https://1016750988-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F7lFTpSLijn44pippdL6u%2Fuploads%2FeFrSpj3FHXfLTXtYtDrL%2Fimage.png?alt=media&amp;token=54c50401-349b-4de2-aeb5-3ca602221025" alt=""><figcaption></figcaption></figure>

As an alternative to using the pre-delivered */TCTM/EWM\_UI\_TEMPL* function group, a Z copy can be made and used instead.

## Generate ITS templates

{% hint style="info" %}
Note

In the below section, you will need to adjust the service names given in the instructions and screenshots if it has been changed, and use the display profile name created above.
{% endhint %}

In transaction /TCTM/EWMITSTEMPGEN, enter:

* Service: ZTCTM\_EWM (or whatever chosen before)
* IAC theme: 99
* Display profile: Z1 (or whatever used in the step before)
* Generating Style: /TCTM/EWM TCT Mobility Templates for EWM
* Publish?: Checked
* Update Fields: Checked **on the first run ONLY**. After that, unchecked

<figure><img src="https://1016750988-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F7lFTpSLijn44pippdL6u%2Fuploads%2FaiNLad4jDY0OxBJZ1W8Y%2Fimage.png?alt=media&amp;token=294f6ea1-bcb9-4b8e-af5a-1bba1b403edd" alt=""><figcaption></figcaption></figure>

From the next screen, select all the screens displayed and click 'Create Templates'.

<figure><img src="https://1016750988-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F7lFTpSLijn44pippdL6u%2Fuploads%2FJCRQk6z3LxRAYjtfhgBb%2Fimage.png?alt=media&amp;token=40372801-ca3a-4fa0-8eb3-913486631cfd" alt=""><figcaption></figcaption></figure>

Add the package name when prompted and click the green tick, before assigning to a transport.

The templates should have been activated as indicated by a green status light.
