General presentation

Objective of the application

Describe in a few words the content of application + link with functional or technical specifications (google links) done with during the project or linked with PPMO

The iCare application was migrated from PQ1 to WBP in October 2017 by PQ1 decommissioning project and consist in developing a BW flow and Function Modules, regarding Accounts, Pending Orders and Overdues to be sent to Salesforce (SF). 

Function Modules(FM) are used, through multiple type of operations, to synchronized Salesforce & BW.

WebMethods (WM) is used as a Middleware between both .

Tool and IT leaders of the application are:

Usage information

This project have only Salesforce users.

History

This project consist on a migration of existing Function Modules and BW objects from PQ1 to WBP.

Roles & Access

Roles and access

List of application role + menu role  and explanation if we have several applications role with specials rules.

Role CodeRole DescriptionExplanation
   
   
   

Authorization objects

Authorization to access report is managed by Salesforce because the reports are in salesforce platform.  For BW, it is only preparing data on tables and DSO in order to load to SF

Dataflow overview

Scheduling Time

Reporting documentation drive folder:

https://drive.google.com/drive/u/1/folders/0B4Zuc7NikGJITjFERFNuVlpFbkU

Functional and Technical rules on Workbench + Reporting

Rules & Explanations

As WebMethods is used as a Middleware, it triggers every steps of each application (BW, SF), and send data from a side to the other.

The document of SF and WM team is here

1. Accounts : FM Z_ZSF_GET_ACCOUNT_DATA

This interface has been done to provide Customers information from SAP (Sold To) to Salesforce (Accounts) and Products from Salesforce to SAP-BW.
The Scope for Accounts is limited to Specialty Polymers Customers, however all Products in SFDC are being sent to BW.
The data will be automatically refreshed once a day (during the night) - starts at 22:00 CET.
There are 4 steps (Operations) :
  1. Operation U (P_TYPE = S (salesforce)): 
    1. WM (WebMethods) extract from SF (Salesforce) the account list that are already synchronized and send it ton BW through the FM. 
    2. Check in table ZSF_LOG if accounts from the previous list have been called less than 30 minutes ago. If no → go to c., if yes go to e.
    3. IE_ACKID = 'OK'. And set ZSF_LOG text filed as 'ACCEPTED'.
    4. Fill ZSF_ACCOUNTS field DELETED as 'X' when SOLDTO is not empty. If the SF_ID is matched from data sent by SF, the deletion flag is cleared. 
    5. IE_ACKID = 'KO'. And set ZSF_LOG text filed as 'REJECTED'.
  2. Operation N : 
    1. WM extract from SF the account list that are not yet synchronized (new) and send it to BW. 
    2. BW create a job S_SF_UPDATE_TIME (Program ZSF_GET_ACCOUNT_DATA) in WBP with user WMTH_BW (it called FM Z_ZSF_GET_ACCOUNT_DATA operation T)
  3. Operation T :
    1. Check loading duplicate
    2. Call function Z_ZSF_CHECK_UPDATE_TIME in PF1_020 table ZZR_CUST_CRM to map SFDC ID with Sold to. 
    3. PF1 Function will get Credit information (CDHDR, KNVP,KNVV,KNA1) to be inserted in BW table ZSF_ACCOUNTS and then Copy PF1 table ZZR_CUST_CRM to BW table ZSF_SOLDTOS.
    4. Fills BW tables ZSF_ACCOUNTS and ZSF_SOLDTOS
    5. Marks entries as ‘must be sync’. 
    6. Table ZSF_PRODUCT is filled in with SFDC Products.
  4. Operation S : 
    1. BW reads entries from table ZSF_ACCOUNTS with flag ‘must be sync’ and where 'deleted' is null. 
    2. Get the detail of account for name text and  vat_reg_no from C_CUSTID
    3. SF receives response from BW (through WM) and include entries that are included in the temporary mapping to be updated. 
    4. Sends the Ack to WBP (via WM) starting operation ‘A’. 
  5. Operation A : 
    1. Clear MUSTBE_SYNC field, when AckID is present.
    2. BWP updates 'last sync' field of ZSF_ACCOUNTS and SF updates entries.

Other operations :

Monitoring : 

In SAP WBP_400 :
➔Check if job is complete with success : Transaction SM37 → Job name: S_SF_UPDATE_TIME
➔Check if SAP table ZSF_ACCOUNTS has records to sync.Field ‘MUSTBE_SYNC’ = ‘X’ and DELETED = empty.

 

2. Overdues : FM Z_ZSF_GET_OVD_INVOICES

The aim of the interface is to daily load the invoices in overdues from SAP into Salesforce CRM.
The scope is limited to the invoices and will present the purchase orders and the materials associated to the invoice for GBU Specialty Polymers.
The data will be automatically refreshed once a day (during the night) starts in SFDC at 02:00 CET.
Every day, all overdues data are deleted from SFDC and loaded from SAP into SFDC.
There are 5 steps :

Other Operations : 

 

Monitoring :

In BW:  

See 'Dependencies with other applications > Salesforce' Chapter.

Validation :

Table ZSF_OVD_INVC will keep detail of billing document from PF1_020 and PI1_020.  In case of source from PI1_020, there will be possible to check on both systems but the billing number will be different

Billing document (PF1-FB03) will be on field BELNR, BUZEI, BUKRS,and GJAHR

Billing document (PI1-FB03) will be on field ORIG_BELNR, ORIG_BUZEI, ORIG_BUKRS, and ORIG_GJAHR

 

3. Pending Orders : FM Z_ZSF_GET_PENDING_ORDERS

This interface has been done to provide Sold and Pending information from SAP and link it with Salesforce Accounts.
The Scope is limited to Specialty Polymers Customers.
The data will be automatically refreshed once a day (during the night) - start in SAP at 22:15 CET (00:00 CEST) and starts in SFDC at 22:00 CET (11:00 CEST).
There are 3 steps (Operations) :

  1. Program Z1F_ZSF_PEND_ORDERS_DATA_V3 with variant PRODUCTION is schedule on PF1 (22:15) to 
    1. Delete table  ZSF_OPEN_ORDS_DB
    2. Find pending order and fill ZSF_OPEN_ORDS_DB table in PF1  
    3. Update log on table ZSF_LOGS in PF1. The job is finished around 01:xx and last log will display total of record
    4. Create control record to have number of record on the first line of the table  ZSF_OPEN_ORDS
    5. Update BW table by calling FM Z_ZSF_GET_PENDING_ORDERS operation C in BW
    6. Operation C:
      • Fill table  ZSF_OPEN_ORDS in BW from table ZSF_OPEN_ORDS_DB in PF1
      • Mark MUSTBE_SYNC = 'X' on table  ZSF_OPEN_ORDS 
  2. Operation S : 

      • BW send table ZSF_OPEN_ORDS where mustbe_sync  'X' to WM via parameter TI_DATA

      • WM reads entries from table ZSF_OPEN_ORDS to check if the control record contains number of records. If yes, WM delete all entries of pending order in SF 
      • Then, WM receives response and insert new entries
      • BW update ACKID field = current date and time on table ZSF_OPEN_ORDS
  3. Operation A : 

      • BW update MUSTBE_SYNC flag  = '' and update LAST_SYNC = today on table ZSF_OPEN_ORDS when ACKID = ACKID from WM

Other Operations :

Monitoring : 

    In SAP PF1_020 :

➔Check the job status in transaction SM37. Job name: ‘SF_PEND_ORDERS’
➔Check table ZSF_LOGS it must have this line

   In SAP WBP_400 :

➔Check in table ZSF_OPEN_ORDS if there are entries to synchronize (MUSTBE_SYNC = ‘X’)
*Remark: In case table ZSF_OPEN_ORDS has no new data from PF1(check on LAST_SYNC date), it needs to run job SF_PEND_ORDERS or program Z1F_ZSF_PEND_ORDERS_DATA_V3 with variant PRODUCTION again. The user to run this job/program has to setup the decimal notation as 1.234.567,89 otherwise, the program will be error since there is a conversion number in the routine. 

 

Function Module Variables :

I_ORIGIN - Possible values are : 'P' (Perform actions) and 'S' (Simulation)

I_OPERATION : Different operations previously explained ('S', 'A', 'I', 'P' for Overdues)

Dependencies with other applications

Salesforce : is the CRM which receives data from SAP (PF1 → BWP → SF)
Monitoring :

WebMethods : is the middleware which triggers the step from SAP and SF.

Data loadings

Info providers and objects loaded

There is only one process chain on this project. It's for the overdues : PC_SFDC_OVD_01. It loads data from DSOs DBFIAR02 & DBFIAR16 to the newly created DSO : DBFIAR22.

Loading frequency

The process chain is running every day at 2AM.

Average performance

if possible, give some information on average process chain duration, amount of data loaded and total data volume example: daily process chain loaded in 30 min, weekly chain loaded in 1h15, with around 2k to 10k lines in DELTA mode for a total of 10M lines in cube. The purpose is to give a general overview of the volume of data managed y the application

 

Key FigureEstimation
~ Average Process Chain Runtime30 minutes
~ Average nb of rows loaded per load7300
~ Total nb of rows loaded (if full)7300
~ Average Runtime for 10k lines 

Record Keeping

Give details if any historisation is done, example: keep only data greater than beginning of Y-3

Reporting

Queries End User Documentation

The reports are available only on Salesforce

Main queries

List the most important and complex queries only with a link to the documentation

Main functionalities

Give detail on all complex functionalities: list most important and/or complex KPI, query jump, alerts

Broadcast

Indicate if there are broadcasts and give some details on the broadcast settings.

Maintenance

Known bugs

Give the list and explanation on the known, not-solved, bugs.

Recurring procedure

List recurring procedures

Planned Evolution

Detail planned major evolution if already known. Example: complete decommissioning of application is planned in 2017 / Extension to solvay perimeter planned in 2nd semester of 2016

 

Z_ZSF_CHECK_UPDATE_TIME