0% found this document useful (0 votes)
357 views97 pages

FS - TS - W - PD303 - Master Data Maintenance

The document provides functional and technical specifications for a workflow object to manage the master data maintenance of auto parts in SAP. It describes the workflow process, which involves material data adjustment, online submission, and confirmation interfaces. Additional details include object IDs, revision histories by various authors, and contact information. The overall goal is to implement a workflow for efficient and controlled master data maintenance of auto parts in SAP.
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as DOCX, PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
357 views97 pages

FS - TS - W - PD303 - Master Data Maintenance

The document provides functional and technical specifications for a workflow object to manage the master data maintenance of auto parts in SAP. It describes the workflow process, which involves material data adjustment, online submission, and confirmation interfaces. Additional details include object IDs, revision histories by various authors, and contact information. The overall goal is to implement a workflow for efficient and controlled master data maintenance of auto parts in SAP.
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as DOCX, PDF, TXT or read online on Scribd
You are on page 1/ 97

Project Arc

Functional/Technical Specifications

Functional and Technical


Specification Document for

Auto Parts Master Data Maintenance

1 of 97
TABLE OF CONTENT

1. GENERAL OBJECT OVERVIEW........................................................................................................ 5


1.1 Generic WRICEF Descriptions......................................................................................................5
2. OBJECT SPECIFIC DESIGN............................................................................................................... 7
2.1 Workflow........................................................................................................................................ 7
3. ADDITIONAL TECHNICAL SPECIFICATIONS:................................................................................37

Functional and Technical Specifications


` 2 of 97
Document Name Team (i.e. OTC) RICEF Number

Auto Parts Master Data Maintenance SOP PD-303


Name Telephone Number & EMAIL address
219-399-6346
Form Completed By Shanker Srinivasan [email protected]
219-399-6552
Business Contact(s) Amy Balka [email protected]
219-399-6346
Functional Contact Shanker Srinivasan [email protected]

Technical Contact

Revision History (ALL)


Versio
Author Description Date
n#
Praveen Initial Draft 1.0 10/23/2017
Gaddipati
Sridhar Improved Version 2.0 01/04/2018
Palepu
Sridhar Updated Version 3.0 02/23/2018
Palepu
Shanker Updated Version 4.0 07/08/2018
Srinivasan
Shanker Updated Version 5.0 11/13/2018
Srinivasan
Shanker Updated Version 6.0 11/16/2018
Srinivasan
Shanker Updated version 7.0 11/27/2018
Srinivasan
Shanker Updated version with CIM corrections 8.0 12/05/2018
Srinivasan
Shanker Updated version with Inspection plan & Production version update 9.0 12/12/2018
Srinivasan
Shanker Updated the Material change scenario correction for MDA and OSA submit for Basic 10.0 03/09/2019
Srinivasan Data and MRP3
Shanker MTF Phase 1 issues 11.0 04/04/2019
Srinivasan
Shanker CIM Panel field addition and changes – CHG0085503 – TR - ED4K939516 & 12.0 06/03/2019
Srinivasan MD4K900687
Shanker ORD_COAT_SUBSTRATE_ID bug fix – CHG0086283 - TR ED4K939743, OSA 12.1 06/30/2019
Srinivasan Rules Fix – CHG0084499 - ED4K939786
Shanker ED4K940039 - CHG0087951_PD303-Tech Target Function fix for population. 12.2 07/23/2019
Srinivasan
Hari Reddy CHG0090981 &CHG0090984 part hold release fix 12.3 10/16/2019

Hari Reddy CHG0090993 Updates basic data 2 but doesn't update MRP3 tab 12.4 11/04/2019

Shanker CHG0097061 - ED4K941528 - Add WF Status and the fields and search by Customer 12.5 11/06/2019
Srinivasan Part number and remove search by Nafta ID
Hari Reddy GHG0096980 Part holds are not releasing when the material is ready 12.6 11/07/2019
Shanker CHG0097703 – ED4K941652 OSA & CIM Worktime Plant and Grade ID BAPI error 12.7 11/15/2019
Srinivasan corrections
Shanker CHG0090997 - ED4K941282 Master Data not being CIFd corrections 12.8 11/19/2019
Srinivasan

` 3 of 97
Kristen Nast ED4K942212 - CHG0083306 : Width & Thickness PO Text read VT tables 12.9 1/21/2020
MD4K901044 - CHG0083306 : Width & Thickness Tol PO Text dropdowns
ED4K942404 – CHG0083306: Book/Spec/Grade Dropdowns (exclude
obsolete/inactive)
Fabio D CHG0084507 – MTF Changes for MES 13.0 3/23/2020
Santos Transports: MD4K901068 / ED4K942517
New fields being added to Master Data Quality OSA Panel

Fabio D CHG0099291 – ECM (Engineering change management) & revision level for Material 13.1 5/07/2020
Santos master
Customizing: ED4K943248 CHG0099291 - Engineer change number / ZBC03
Workbench: ED4K943349 CHG0099291 - Engineer change number material master
ED4K943403 CHG0099291 - Engineer change number material master (FIX-1)
Fabio D CHG0084507 - Tolerances determination for thickness/width  13.2 5/14/2020
Santos
Hari Reddy CHG0123086 - Restricted flags not updating when submitted 2. have to submit more 13.3 12/05/2020
than once.
Dirceu Gritti CHG0126546 - SAP Material Missing BOM's 13.4 03/10/2021
Sobrinho ED4K944787
ED4K944828
ED4K944854
Shanker CHG0140154 - Auto Forecasting Project Changes – New Logic for creating the 14.0 05/13/2021
Srinivasan Material Master
- The logic of creating the new Material master from NAFTA is suspended.
- The Workflow creation trigger point is changed.
- The Material MDA Fiori panel is changed to have the header fields as input fields.
- The MDA, OSA and CIM panel Label changes from NAFTA ID to Document ID.
ED4K945581

MD4K901487

MD4K901511

MD4K901513

MD4K901525

Hari Reddy CR00006345 MTF OSA panel -Material locked by user error 14.1 1/26/2022
Kristen Nast CR00007293 – Duplicate coat substrate options in OSA panel 14.2 2/14/2022
ED4K947494
Dirceu Gritti CR00007620 - When BSG is updated in ZUS_MASS_UPD category 1 spec not 14.3 3/7/2022
updating in SAP material
JDouglas CR00006192 Material Fiori Worklist Fixes 14.4 3/24/2022
JDouglas CR00007621 Add gauge & width conversion table to material and display panels 14.5 3/24/2022

Hari Reddy CR00005180 Drop cut loosing in S/4 Hana 14.6 3/27/2022
Hari Reddy CR00005980 and CR00005981 CIM panel data update not working 14.7 3/31/2022
Hari Reddy CR00007987 Future part characteristics are “falling off” the material at 14.8 3/31/2022
OSA completion

Dirceu Gritti CR00006531 - MTF not showing gauge/width tolerance PO text in the 14.9 4/4/2022
material display screen in Fiori. Same issue on the OSA worklist.

` 4 of 97
Hari Reddy CR00006339 Restrict material workflows from being created by MDA, 15.0 4/19/2022
OSA, and CIM for any status other than active.
Srinivasan N To differentiate the CORP or LLC materials part upload template has 15.1 5/18/2022
a field to capture it in Material Master MARA table.Adding Planning
Product Detail.
Object Overview

Business
Object ID
Process

SAP
SAP Release
Module
( ) Report
( ) Interface
( ) Conversion
Object Type ( ) Enhancement
( ) Form
(X) Workflow

Object Title Workflow for Master Data Maintenance

Object Description Workflow object for master data maintenance

Mock Up ID / Name

Medium High
Complexity of Object Priority
(following naming
SAP Program
SAP Transaction Name convention guidelines)
Name

Similar SAP Similar SAP


Transaction Program

` 5 of 97
1. General Object Overview
1.1 Generic WRICEF Descriptions
JUSTIFICATION
[Provide a high level description reason from deviation from standard SAP reports or BW reports.]

When a new part is awarded to AMUSA, a workflow will be initiated so the characteristics of the material can be
captured by the following groups:

 NAFTA Team
 Customer Service
 Master Data Team
 Corporate Quality
 Outside Processing
 Corporate Planning

FUNCTIONAL DESCRIPTION / DESIGN


The process begins when an automotive part is awarded to AMUSA. The contract, EVI, part sheet, etc. will be sent to
the NAFTA Automotive group and the part will be logged in the MDG database. Once complete, a transaction will be
received from NAFTA alerting AMUSA that a material needs to be created or updated. The material will be reviewed
by the Master Data Team. For new parts, a workflow will be initiated to create a material in SAP. The materials will
be reviewed by several areas to capture all the production requirements. The data required will include all the steel
characteristics needed for production at the plant level, in addition specific customer, packaging and testing
requirements, capable and qualified routes, outside processing requirements and lead times. Creation of materials
will occur before sales agreement is created can be created.
After the material is created and activated in SAP, a legacy template (OFS CQR, COS/MES order template, Axiom
part) will be created and linked to the material. For MTF business, a scheduling agreement will be initiated to begin
production. CIM will manage the supply and demand for the part based on the customer’s forecast.

The following master data needs to be created in SAP through workflow process:
Material Creation with all the required views with ECM
Routing with ECM
Production Version with ECM
Customer Info Record
Inspection Plan

Customer Material Changes:


Customer info record needs to be updated incase if customer changes the part number.

CR00006192 3/2/2022
1. Change the 'Created By' in the Master Data worklist to reflect the user id of the individual who created the
material workflow (as opposed to who created the material id).

1a. Add Platform and model to the MDA panel. These fields currently exist in the CIM panel and need to be
added to the MDA panel. Later, all panels will be made to be consistent with the MDA panel so first we
need to make corrections need to that so it can serve as the model

2. The OSA and CIM panels would be corrected to have the dimensions fields look same as MDA panel.
From Amy’s email 3/1/22: The goal is to have the header information in all three panels (mda, osa, and
cim) consistent – as well as the material display.
2. Separate the ship city and state into two fields on OSA and CIM (as per the MDA panel)
` 6 of 97
3. Add UOM field to OSA and CIM (as per MDA panel)
4. Gauge, Width, and Length – separate value from form into two fields on OSA and CIM (as per MDA
panel)
3. Need ability to attach and view part documentation for non-automotive parts (with instantaneous
visibility) – i.e. Whirlpool
Change the code to look for the material number instead of the document id.

4. Read revision level from material master to the material display panel next to part status. Adding to
material display panel, only (not the others mentioned herein)

5. In the “Corporate QA” tab of the Master data display add “converted dimension details” as currently in
the OSA worklist. (from CR7621 made part of this change as it is the same panels being updated)

End CR6192

TRANSACTION VOLUME

` 7 of 97
Volume should be based on forecast management upload errors. Business doesn’t have the approximate number of
records as it is based on real time.

FREQUENCY & TIMING


Real time whenever material changes or creation needs to be done through work flow process based on forecast
errors.

DEPENDENCIES
Workflow should trigger the material creation first followed by all the necessary views in material master based on
department ownership before creating Routings, Production Versions and Customer Info records.

AUTHORIZATION REQUIREMENTS

To be decided

RELATED DOCUMENTATION (ATTACH OSS NOTES, EMAILS, DOWNLOAD OF EXISTING REPORT, ETC)

PDD - Process
Definition Document for Master Data.doc

ASSUMPTIONS
Ownership of material master creation to be distributed based on each department to trigger the workflow process.

5. Object Specific Design


5.1 Workflow.
2.1.1
 NAFTA Department and Customer Service Departments Will Provide all the Material Data fields in Basic Data 1 and
Basic Data 2 including NAFTA ID. A Custom Interface will be developed for this Data. They will also determine if the
Material is New or Existing. Also, the Custom Interface will provide which characteristic are to be updated in the
Variant that is Assigned in Basic Data 2 of Material Master.
 There are total Five Workflows. Workflow No.5 is to create a New Material. Workflows No.1, No.2, No.3 and No.4 are
to change the Material and Update Variant Characteristics and depending on the Characteristic the respective change
Workflow will be Triggered. The details are given later in this section.
 For a given Material the NAFTA ID is always constant. Only the Customer Part Number will change according to the
Characteristics like Width, Gauge etc.,
 If the NAFTA ID is New the creation of Material MM01 transaction must be triggered. All the specified Views of
Material will be created and all Variant Characteristics will be updated. They will be reviewed by all Master Data and
all other departments involved in the Material Workflow, they will update the data if needed.
 If the NAFTA ID is existing the MM02 transaction must be triggered and the respective Characteristics and be
updated Automatically by the Custom Interface. All the concerned departments, will validate the accuracy in Change
Mode, If the data is not accurate, they will update the Characteristics.
` 8 of 97
 The combination of the Teams to which the Workflow will be sent will change according to the Parameter Type that is
changed. For example, the if the Vendor Changes Only Master Data Team and Outside Processing Teams will be
involved.
 The different combination of Teams is given below:
o Workflow-5: Master Data Team, Corporate Quality, Outside Processing, Corporate Planning, CIM, Customer
Service and Order Management.
o Workflow-1: Master Data Team, Corporate Quality, Outside Processing and Corporate Planning.
o Workflow-2: Master Data Team, Corporate Quality and Corporate Planning.
o Workflow-3: Master Data Team and Corporate Quality.
o Workflow-4: Master Data Team and Outside Processing and Corporate Planning.

 In this Workflow, the following Objects will be updated if the Material is New or Existing. For Existing Materials, some
specific Characteristics must be updated (list of characteristics provided below).
 Material Creation with all the required views with ECM
 Routing with ECM
 Production Version
 Inspection Plan
 If Outside Processing is needed.
o Vendor Number.
o Subcontracting Purchase Info Record.

 List of Characteristics that will be updated for the existing Material are: Width, Gauge, Inspection Plan, Coat
Weight, Cust Prime Side, Oil Type, Oil, Surface Treatment, Thickness, Width and Width Type. The details list has
been provided in the following Excel File.
http://sp.arcelormittalusa.com/fcna/IH/ITPMTemplate/SAPMTF/2%20%20Blueprint/12%20Functional%20Specs/Master
%20Data%20and%20Contracts/MD%20Workflow%20Teams.xlsx
 The following Departments will be involved for a New or Existing Material. A Separate Email Distribution List will be
created for the users in these Departments.
 Master Data Team
 Corporate Quality
 Outside Processing
 Corporate Planning

2.1.3 The Workflow must be integrated with Fiori Apps. Each Outlook Email must have link to the Fiori App.

2.1.4 The Status of the Creation of each object must be reported in a separate Fiori Custom Report. It must contain the
following.
 Which Users Already Processed their respective Task of a given object.
 The Current User Creating the Object.
 The users who yet to create the object.
 The Start and End Time Stamp for each User must be tracked.
 The Status must stay Completed, in progress and Not Started.

Three Fiori Tiles –

CR00006192 3/2/2022
` 9 of 97
1. Change the 'Created By' in the Master Data worklist to reflect the user id of the individual who created the material
workflow (as opposed to who created the material id).

1a. Add Platform and model to the MDA panel. These fields currently exist in the CIM panel and need to be
added to the MDA panel. Later, all panels will be made to be consistent with the MDA panel so first we need
to make corrections need to that so it can serve as the model

2. The OSA and CIM panels would be corrected to have the dimensions fields look same as MDA panel. From
Amy’s email 3/1/22: The goal is to have the header information in all three panels (mda, osa, and cim)
consistent – as well as the material display.
6. Separate the ship city and state into two fields on OSA and CIM (as per the MDA panel)
7. Add UOM field to OSA and CIM (as per MDA panel)
8. Gauge, Width, and Length – separate value from form into two fields on OSA and CIM (as per MDA panel)
3. Need ability to attach and view part documentation for non-automotive parts (with instantaneous
visibility) – i.e. Whirlpool
Change the code to look for the material number instead of the document id.

4. Read revision level from material master to the material display panel next to part status. Adding to
material display panel, only (not the others mentioned herein)

5. In the “Corporate QA” tab of the Master data display add “converted dimension details” as currently in the
OSA worklist. (from CR7621 made part of this change as it is the same panels being updated)

Start Requirement 1-
1. Change the 'Created By' in the Master Data worklist to reflect the user id of the individual
who created the material workflow (as opposed to who created the material id).

From Shanker Srinivasan 3/1/22: Please find the logic below for updating the information on who created the
Workflow:
In the business object type BUS1001006, using one of the methods inside that object while creating the
Workflow, take the User ID of the person who is calling the Workflow from the transactions ZPD15 or ZOTC05
and update the Table field SWWWIHEAD-WI_FORW_BY. And in the Fiori Odata
/sap/opu/odata/sap/ZUS_SOP303_MATMASTER_SRV/WORKITEMSSet, in the field “CreatedBy”, change the
logic to read the data from field SWWWIHEAD-WI_FORW_BY instead of Material created by and use that
value if it exists and the value will be blank if never updated since this change goes in place.

Master Data Worklist:

` 10 of 97
“CreatedBy” will now be the new field value. If no value is found then this will be blank:

End Requirement 1

Start Requirement 1a:


Add Platform and model to the MDA panel. These fields currently exist in the CIM panel and need to be added
to the MDA panel. Later, all panels will be made to be consistent with the MDA panel so first we need to make
corrections need to that so it can serve as the model.

Changes or adds to the MDA panel (Master Data worklist)

Add to the header section:

` 11 of 97
Adding here:

End Requirement 1a.

Start Requirement 2-
2. The OSA and CIM panels would be corrected to have the dimensions fields look same as MDA panel.
The goal is to have the header information in all three panels (mda, osa, and cim) consistent – as well
as the material display.
A. Separate the ship city and state into two fields on OSA and CIM (as per the MDA panel)
B. Add UOM field to OSA and CIM (as per MDA panel)
C. Gauge, Width, and Length – separate value from form into two fields on OSA and CIM (as per
MDA panel)
These 2 panels header areas when displaying data are to be adjusted to be the same as the MDA panel so the changes
are to these first 2 shown (in EQ4 first one shows “OSA” and not “OSE”):

MDA - this is the model for OSA and CIM to appear like this one. After other changes like the addition of
platform/model to MDA, then use that as the model for the CIM and Master Data Quality OSA (or OSE).
First, by clicking on the Master Data Worklist tile in Fiori launchpad:

` 12 of 97
The system will present a list of SAP materials. This is the Master Data worklist. There is some search criteria
available at the top of the screen.

By selecting a SAP material from the worklist, below is the MDA panel. This is the screen where we input the
material characteristics and other required information. The header that is presented on this screen should
be consistent with the header information that is presented to the “Master Data Quality OSA” and CIM
in their panels.

Master Data Quality OSA (or OSE):

` 13 of 97
Select material from list:

Header area to be made to match the MDA panel shown, above. This is the current panelt to be adjusted:

CIM - make header area consistent with MDA panel:

` 14 of 97
Click on the material in the list, Change this header area to look like the MDA screen for the header area:

End Requirement 2.

Start Requirement 3:

3. Need ability to attach and view part documentation for non-automotive parts (with
instantaneous visibility) – i.e. Whirlpool.

Change the code to look for the material number instead of the document id.

“Document ID” is actually “basic material” in SAP. MARA-WRKST.

The change to make:


In material display panel -

` 15 of 97
When displaying a material (shown here from EQ4) there is the “Material Documents” button on the top right:

Shown here in context. When this button is clicked it has been searching for documents by the “document ID”
(MARA-WRKST). This must be changed to search by the material ID (604295 in the example).

For EQ4 and the example, above, currently when clicking “Material Documents” the following is shown. The
documents are being updated to have the material ID instead of the NAFTA ID so after the change we should
still retrieve these documents:

End Requirement 3.

Start Requirement 4:
` 16 of 97
4. Read revision level from material master and add to the material display panel header area

Adding for panel material display:

Read revision level from material master as shown in MM03 or MM02:

Revision level: 04
Add “Revision Level” and value (04 in example, above) to appear here in the header area for material display,
only. Add right below “Part Status” as shown, below:

End requirement 4.

` 17 of 97
Start requirement 5:
5. In the “Corporate QA” tab of the Master data display add “converted dimension details” as
currently in the OSA worklist. (from CR7621 made part of this change as it is the same panels
being updated)

The converted tolerances should go in this yellow section, in the corporate QA section. These tolerances exist
and need to be converted - that conversion to be added below where it is marked yellow:

This is to be converted like this example where the top part is the existing part and now we need to add the
conversion, below. So the above fields in “Corporate QA” will be repeated in a display only section which
replicates what is already there with values converted to to/from metric.

End Requirement 5.

End CR6192

Material Number Range

All the ZPRT material numbers will be starting from 600000 to 699999 series.
The material numbering object MATERIALNR buffer was changed from 10 to 1 so that the materials can be
created in the sequential order.

` 18 of 97
Tile 1 – MDA

LAYOUT – NEW (DISPLAY SCREEN) Screen 1


Table/Structure Field Name Format Default Column Translation
Name (ie Value Name Rule
decima
l
places)
MARA WRKST Material
Number
MARC WERKS Facility

BUT000 NAME_ORG1 Customer KNMT-


Name KUNNR; look
for knmt
matching
material
number
Agent of Workflow MDA
Assigned
KNMT KDMAT Part
Number
Material ORD_QUE_PRODUCT_ID Product ID
characteristic
Valid From

LAYOUT – NEW (EDIT SCREEN) Screen 1


Table/Structure Field Field Name Input Default Column Translation
Name No. Type Value Name Rule

  1 ORD_CONTRACT_NUMBER     Contract  
Number
  2 ORD_QUE_PRODUCT_ID     Queue  
Prod ID
  3 ORD_ALT_CUST_PART     Honda  
MSA
Number
  4 ORD_COAT_WEIGHT_TEXT     Coating  
WT
  5 ORD_VC_SCENARIO     VC  
Scenario
  6 ORD_CUST_HEAT_TREAT     CA  
Required
  7 ORD_DIM_UNIT_OF_MEASURE     Gauge  
  8 ORD_THICKNESS_ENG,      
9 ORD_THICKNESS_MET
  10 ORD_THICKNESS_TYPE      
  11 ORD_WIDTH_ENG,     Width  
  12 ORD_WIDTH_MET      
` 19 of 97
  13 ORD_WIDTH_TYPE      
  14 ORD_LENGTH_ENG,     Length  
  15 ORD_LENGTH_MET      
  16 ORD_LENGTH_TYPE      
  17 ORD_FLAT_TOL_PO_TEXT     Flat  
  18 ORD_FLAT_TOL_PLUS     Tolerance  
  19 ORD_FLAT_TOL_UOM      
  20 ORD_THICKNESS_TOL_PLUS_ENG,     Gauge  
21 ORD_THICKNESS_TOL_PLUS_MET Tolerance
Plus
  22 ORD_THICKNESS_TOL_MINUS_ENG,     Gauge  
Tolerance
23 ORD_THICKNESS_TOL_MINUS_MET
Minus

  25 ORD_WIDTH_TOL_PLUS_ENG,     Width  
26 ORD_WIDTH_TOL_PLUS_MET Tolerance
Plus
  27 ORD_WIDTH_TOL_MINUS_ENG,     Width  
28 ORD_WIDTH_TOL_MINUS_MET Tolerance
Minus

  30 ORD_CUST_EDGE     Edge  
Condition
  31 ORD_STEEL_FORM     Form  
  32 ORD_OIL_TYPE_DESC     Oil Type  
  33 ORD_OIL_BRAND_DESC     Oil Brand  
  34 ORD_OIL_AMOUNT_DESC     Oil Amount  
  35 ORD_FINISH_DESC     Finish  
  36 ORD_PROCESS_DESC     Temper  
(Process)
  37 ORD_SURFACE_TREATMENT_DESC     Surface  
Treatment
  38 ORD_COIL_OUTER_DIA_MAX,     Coil OD  
39 ORD_COIL_OUTER_DIA_MAX_MET
  40 ORD_COIL_INNER_DIA,     Coil ID  
41 ORD_COIL_INNER_DIA_MET
  42 ORD_MAX_COIL_WEIGHT,     Max Coil  
43 ORD_MAX_COIL_WEIGHT_ENG WT
  44 ORD_COIL_WEIGHT_UOM     UoM  
  45 ORD_EXPOSURE_CODE     Exposure  
  46 ORD_CUST_PRIME_SIDE     Primeside  
  47 VC_PRINT_TEXT_ZUSE End use  
  48 Basic data text in master data – for MDA     Comments  
team
  49 Document data in master data     View  
Documents
  50 Workflow status     Hold  
  51 Workflow comments     Hold  
Comments
  52 ORD_OP_AGREEMENT_NUMBER     Warehouse  
` 20 of 97
Only
Required
             

Characteristics Filter while submitting from MDA App.

If characteristics ORD_STEEL_FORM = CB(Configured Blank), CL, TPZ, TWB then the below characteristics
should not be sent in the BAPI. This is applicable for all the Products.

ORD_COIL_INNER_DIA
ORD_MAX_COIL_WEIGHT

Below is the condition that should be in both workflows Material Create (WS90000014) and Change
(WS90000018) scenarios.

If characteristics ORD_STEEL_FORM = C then the below characteristics should not be sent in the BAPI.
ORD_LENGTH_ENG
ORD_LENGTH_MET
ORD_LENGTH_TYPE

V11.0:
In all the apps solved filters and sorts inside the column configuration button.

Certain fields that are sent to UI were showing empty values, now they are NONE as default even though the
user does not select it from the UI. In one of those fields is the Special Character field which has the default
value as None.

In all apps the plant will be selected from KNMT only for the Costumers starting with 8* as the range number.

In the first tile the Material creation date will be changed to Workflow creation date in the Apps Workitems
screens.

Add new field OP Warehouse Only Required in the Master Data Apps

Updating the MRP3 data in the material change scenario

In the material change scenario where the workflow will be (SWWWIHEAD-WI_RH_TASK) WS90000018,
check for the below critical fields that are changed by calling the function module
ZUS_SOP_303_CRITICAL_FIELD_CHG and if the return value is ‘Y’ then update only the Basic Data 2
(MARA-SATNR). If the return value is ‘N’ then in the action ‘submit’, update both the Basic data 2 (MARA-
SATNR) and the MRP3 (MARC-STDPD) with the changed values along with the other data that is already
available with the function module MATERIAL_SAVE_CONFIGURATION.

` 21 of 97
V11.0:
In OSE App the ORD_COIL_INNER_DIA value was sent with a different value because there was a clear
missing on the structure before the CoilID was updated.

SAP Documents Button


SAP documents should fetch based on the KDMAT from VBAP table and should get the latest SAP order
number. Taking the SAP order number from the VBAK table get the PO and send in the below URL in the
specified format. The URL are maintained in the parameter table ZUS303NFTURL.

http://ihe-web2012tv/QUEUE/VIEWDOCUMENTS.ASPX?ORDERID=0050902561

Tile 2 – Quality Team

LAYOUT – CHANGE (DISPLAY SCREEN)


Table/Structure Field Name Format Default Value Column Name Translation Rule
Name (ie
decimal
places)
MARA WRKST Material
Number
MARC WERKS Facility
BUT000 NAME_ORG Customer KNMT-KUNNR;
1 Name look for knmt
matching material
number
Agent of MDA Assigned
Workflow
KNMT KDMAT Part Number

LAYOUT – CHANGE (EDIT SCREEN)


Table/ S.N Field Name Forma Defaul Column Name Translatio
Structure o t t n Rule
Name (ie Value
decim
al
places
)
1 ORD_PROD_TYPE_ID OrdProductType
2 ORD_BOOK Book
3 ORD_TECH_TARGET_GROUP TechTargetGroup
4 ORD_CUST_QUALITY_DESC CustQualityDesc
5 Display Only* Tensile
6 Display Only* R-Bar
7 ORD_CERT_STATEMENT CertStatementCode
8 ORD_CHEM_PROP_REVIEW_IND ChemPropReview
9 ORD_RESTR_COATING_IND RestrictedCoating
` 22 of 97
10 ORD_RESTR_THICK_TOL_IND RestrictedThickness
Tol
11 ORD_COAT_WEIGHT_TEXT CoatWeight
12 ORD_CUST_SPEC_ID Spec
13 ORD_TECH_TARGET TechTarget
14 ORD_CUST_INCLUSION CustInclusion
15 Display Only* Yield
16 Display Only* N-Value
17 ORD_TEST_RPT_REQ TestReportReq
18 ORD_RESTR_CHEM_IND RestrictedChem
19 ORD_REQ_COAT_DRY_IND ReqCoatDry
20 ORD_RESTR_WIDTH_TOL_IND RestrictedWidthTol
21 ORD_COAT_SUBSTRATE_ID CoatSubstrate
22 ORD_CUST_GRADE_ID Grade
23 ORD_STEEL_FAMILY_ID SteelFamily
24 ORD_NICKEL_FLASH NickelFlash
25 Display Only* Elogation
26 ORD_SPECIAL_SPC_CHAR SpecialSPCChar
27 ORD_RESTR_PROP_IND RestrictedProp
28 ORD_REQ_TENSION_LEVEL_IND ReqTensionLevel
29 ORD_RESTR_FLAT_IND RestrictedFlatness
30 Read from MKAL-VERID based on the Route
Cross-Plant Configurable Material and
Ship City
31 MKAL-TEXT1 RouteName
32 Check Box Qualified
33 Check Box Capable
34 Check Box Lock
35 Text box for each route Comments*
36 ORD_INSIDE_STORAGE Inside Storage
37 ORD_STENCIL Stencil Req
38 ORD_SURFACE_CRITICAL Clean Surface/No
Smut
39 ORD_CUST_TEK_REQ TEK IHE Req
40 ORD_CUST_SPEC_SHORT Updated
automatically at the
backend in the
material by the
program. No user
Input is provided.
  41 ORD_WIDTH_TOL_PO_TEXT*     Width Tolerance  Version
12.9 –
How to
read
values
  42 ORD_THICKNESS_TOL_PO_TEX     Gauge Tolerance   Version
T* 12.9 –
How to
read
values
43 ORD_ENDUSE_CAT End use category Version
13
44 ORD_ASPECT_CODE Aspect code Version
` 23 of 97
13
45 ORD_QM_ADDL_TEST_REPORTI Add. test reporting Version
NG 13
43 ORD_QM_ADDL_YTE_REPORTIN Add. YTE test Version
G reporting 13
47 ORD_QM_OTHR_TEST_REPORTI Add. other test Version
NG reporting 13
48 AIMTOLERCOMMENTS AIM Tolerance Version
comments 13
49 AIMOTHPROPCOMMENTS AIM other prop Version
comments 13
50 AIMCHMMCHPROPCOMMENTS AIM change prop Version
comments 13

Version 12.9

*ORD_WIDTH_TOL_PO_TEXT
 In class: ZCL_ZUS_SOP303_MATMAST_DPC_EXT
 Under method: WIDTHTOLSET_GET_ENTITYSET
 Values should be read from VT_PROD_WIDTH_TOL using CARD_TABLE_READ_ENTRIES
 Dropdown values should be limited by ORD_QUE_PRODUCT_ID = QUE Product Id

* ORD_THICKNESS_TOL_PO_TEXT
 In class: ZCL_ZUS_SOP303_MATMAST_DPC_EXT
 Under method: GUAGETOLSET_GET_ENTITYSET
 Values should be read from VT_PROD_THICK_TOL using CARD_TABLE_READ_ENTRIES
 Dropdown values should be limited by ORD_QUE_PRODUCT_ID = QUE Product Id

Update Save/Submit logic:


Remove logic that checks for description/value in table CAWN, CAWNT

Version 13.0

New fields to be added to the APP. Please follow the instructions below:

 Update BSP ZSOP_MD_CORPQA under views "MasterData", "Details" and "BookSpecGradeTT"


 Add properties "EndUseCat", "AspectCode", "AddTestReport", "AddYteReport", "OtherTestReport",
"AimTolerComments", "AimOthPropComments" and "AimChmMchPropComments" the the entity
"MatnrCorpQty"
 Create entities "EndUseCat", "AspectCode", "AddTestReport", "AddYteReport" and
"OtherTestReport" for combobox services
 Update function ZUS_SOP_303_CORP_QLTY_UPDATE in order to save the new characteristics
 Update method MATNRCORPQTYSET_GET_ENTITY in order to select the characteristics values
 Create a new Z table to store texts fields based on material number and text ID

Table name: ZUS_303_AIM_TEXT


Table structure:
Field Key Data element Data type Length Description
MATNR X MATNR CHAR 40 Material number
` 24 of 97
ZZID_TEXT X TDID CHAR 4 Text ID
ZZAIM_TEXT ZZAIM_TEXT CHAR 70 Aim Text

Version 13.1

During submit process, check the critical fields list (ZBC03 – DD Object ZUSSOP303CRITICAL) and compare
if there’s any critical characteristic being changed. The values comparison happen based on configuration data
stored in material master Basic Data and configuration from MRP3 view of material master.
If any change is being done at those critical fields, generate a new Revision Level at the material that is being
changed.

List of critical fields:


ORD_BOOK_ID
ORD_CUST_EDGE
ORD_CUST_GRADE_ID
ORD_CUST_GRADE_SHORT
ORD_CUST_SPEC_ID
ORD_CUST_SPEC_SHORT
ORD_EXPOSURE_CODE
ORD_FINISH_DESC
ORD_LENGTH_TOL_MINUS_MET
ORD_LENGTH_TOL_PLUS_MET
ORD_OIL_AMOUNT_DESC
ORD_OIL_BRAND_DESC
ORD_OIL_TYPE_DESC
ORD_PROCESS_DESC
ORD_PROD_TYPE_SHORT
ORD_QUE_PRODUCT_ID
ORD_STEEL_FORM
ORD_SURFACE_TREATMENT_DESC
ORD_THICKNESS_MET
ORD_THICKNESS_TOL_MINUS_MET
ORD_THICKNESS_TOL_PLUS_MET
ORD_THICKNESS_TOL_PO_TEXT
ORD_THICKNESS_TYPE
ORD_WIDTH_TOL_MINUS_MET
ORD_WIDTH_TOL_PLUS_MET
ORD_WIDTH_TYPE

The material revision level range was set from 1 to 99. When the revision level reaches the 99 level, and issue
should be raised during the submit process of material.

Check critical fields changes:


The main change should be done at the following objects:
Include LZUS_SOP303F02
Include LZUS_SOP303F01

Use function module CUXM_GET_CONFIGURATION to get configuration values.


New critical fields check function should be created. Use naming convention
ZUS_SOP_303_CRITICAL_FIELD for that.

` 25 of 97
Create Revision Level:
FM for revision level definition: 'REVISION_LEVEL_SELECT'
FM for changing revision level: 'REVISION_LEVEL_INSERT'

Revision level parameters:


From constant table (TCode ZBC03):
 New Structure:
o ZUSSOP303REVLEVEL  Material Master Revision Level Parameters
 Fields:
o AENNR  Change Number
o AEOBJ  Engineering Change Management Object
 Values – the values for those fields must be set in each client
o Change Number  Change number document defined at TCode CC01 in each client
o Engineering Change Management Object  Default value to be set as 4

*** Check at the last session of this document for coding details.

Version 13.2

Tolerance values determination:


Implement function module ZUS_MTO558_OSA_PANEL_ODATA in order to determine Gauge and Width
tolerance values. The ABAP code was done at the front end side, not applicable at this document.

Remove Tolerance validation at submit:


The rule to check if Gauge and Width tolerance must be zero in case there’re values to Gauge Tol PO Text
and Width Tol PO Text were removed. It should be implemented at program LZUS_SOP303F02. Please check
code changed at the last session of this document.

Special treatment for PO Texts: +10%, +/-5% and NON-STANDARD:


If the PO Text is equal to values +10% or +/-5%, do not call function ZUS_MTO558_OSA_PANEL_ODATA
and instead, use values below:
     If PO text  is +10%
Tol plus is Gauge = 0.1
Tol minus is = 0
                If PO text  is +/-5%,
Tol plus is Gauge = 0.05
Tol minus is Gauge = 0.05

If the PO Text is equal to NON-STANDARD, do not overwrite fields Tol Plus and Tol Minus.

Apply those changes in program:


Class: ZCL_ZUS_SOP303_MATMAST_DPC
Method: TOLERANCESET_GET_ENTITYSET

The FM call logic starts at line 257. Use internal table “tolerance_values” to handle the values.

Version 12.7

Work items CorpQA


` 26 of 97
In the class ZCL_ZUS_SOP303_MATMAST_DPC_EXT under the method
WORKITEMSCORPQTY_GET_ENTITYSET the plant (WERKS) for the Workitems that are displayed should
be taken from KNMT-WERKS instead MARC-WERKS.

CoatWeight – The logic to populate the coat weight would be read from the parameter table ZUS303COATINGWT
based on the Book ID & Product ID.

Display Only* - The logic to read the fields are below

The Mechs Data should have three columns for each of the fields namely Lower Limit and Upper Limit and UoM.
Using the Grade ID that is selected in the field Grade by the user, go to the table PLMK and pass it to the field PLMK-
PLNNR and apply the filter in the field PLMK- VERWMERKM with MECH001, MECH002, MECH003, MECH006,
MECH008 and the Material Gauge value is within the range of PLMK- ZGAUGEMIN and PLMK-ZGAUGEMAX. In the
resulting data take the value from PLMK-TOLERANZUN and PLMK-TOLERANZOB and update it into the fields as given
below.

MECH001 = Yield
MECH002 = Tensile
MECH003 = Elogation
MECH006 = N-Value
MECH008 = R-Bar

PLMK-TOLERANZUN = Lower Limit


PLMK-TOLERANZOB = Upper Limit
PLMK- MASSEINHSW = UoM

Mandatory fields:

Book
Spec-Rev
Grade
Tech Target
Tech Target Group
Steel Family

Routes Update:

The routes are selected from the MKAL table based on the configurable product and the Plant. In the initial
route screen, the program will read from the table MKAL the list of all the production version where the route is
updated with the characteristics PP_STANDARD_ROUTE = Y and the Production version status = empty (Not
Locked). When the user selects the indicator show all routes then the program will remove the filter for the
characteristics and will show up all the routes pertaining to that Product ID.

Note: All the Calvert routes are removed from being displayed. The MKAL table for the version should be
locked (MKAL-MKSP = 1) for all the Calvert related Production version.

The users will select the check box indicator against each route and only one route can be selected as locked.
A custom table ZUS_303_ROUTES is created is created to store the data for the SAVE operations in the APP.

` 27 of 97
No update to the routes or production version is created. Once the user Submits the data, the application
should call the ROUTING_MAINTAIN to assign the materials to the specific routes and
CM_FV_PROD_VERS_DB_UPDATE for creating the Production version.

The program will check in the MAPL table if the Route for which material has to be assigned is not already in
there. (MAPL-PLNNR where MAPL-LOEKZ NE ‘X’).

The Planning ID to be updated in the production version as well and the logic is below.

Planning ID (MKAL-MDV02 = MKAL-MATNR)


Production version logic – please hardcode the plants below and the planning ID to be created only for the
below plants

For the plants 1120, 1130, 1180 and 2008


Update the table T437P (or the view v_ T437P)
Where
MANDT = MANDT
WERKS = MKAL-WERKS
PLAN_ID = MKAL-MATNR

Group Counter logic for linking material and creating the production version - Go to MKAL table and enter the
MKAL-MATNR = Config Material (Eg. CR, HR, GI, GA etc) and MKAL-VERID = Production version number
from the route as input and get the output group counter = MKAL-ALNAL.

For the comments against each route to be updated, a custom field will be included in the table MAPL and the
data will be stored there. The comments text field does not have any limit. The paragraphs can be copied and
pasted into the comments section.

Anneal Type – The Anneal type is a display field that should be read from the classification data for the Class
CL_ROUTING and the Characteristic PP_ANNEAL_TYPE for the routes. Populate only values B or C.

1. The description of the Spec ID (ORD_CUST_SPEC_ID) which should be combination of Book(text of


ORD_BOOK_ID), Spec desc from table (ZUS_QM535_CT_DES),
QM_REVISION_TEXT,QM_REVISION_DATE. Wherever the dates are getting displayed it should have
open and closed parenthesis.
2. Grade ID just get the Grade description from the table ZUS_QM535_CT_DES instead of the enrich
text.
3. In the dashboard Facility should display the name of the plant and not the ID just like other apps.

Inspection Plan update:

12.9
Book, Spec, Grade Dropdowns
ZCL_ZUS_SOP303_MATMAST_DPC_EXT
BOOKSET_GET_ENTITYSET
SPECSET_GET_ENTITYSET
GRADESET_GET_ENTITYSET

Filter out the marked for deletion Book, Spec, and Grades (inspection plans):
Where Clause: ….AND (statu = ‘Z02’ OR statu = ‘Z01’)
` 28 of 97
AND PLKO-DELKZ = blank AND PLKO-LOEKZ = blank

While submitting the data in the app, the program will assign material to the inspection plan. The logic to get
the correct inspection plan is - take the Grade ID that is selected in the App and pass it to the table PLKO-
PLNNR and in the output get the relevant Group Counter PLKO-PLNAL. Call the
BAPI_INSPECTIONPLAN_CHANGE and pass the values Grade ID, Group Counter, Material and the Plant for
assigning the material to the inspection plan.

1. From the Corp QA app, in the action Submit, before calling the BAPI_INSPECTIONPLAN_CHANGE
to link the material to the inspection plan, please check in the table MAPL by passing the material number
in the field MATNR to check if there is any MAPL-PLNNR which the Grade ID, MAPL-PLNTY=Q is
existing. If no value is found then call the function module BAPI_INSPECTIONPLAN_CHANGE and
the MAINTAIN_MODE = C and pass the Grade ID and the material from the app to link it.

2. If value is found in the MAPL-PLNNR then compare the Grade ID that is passed in the app with the
MAPL-PLNNR and below action is to be done based on the results.
- Result 1 - Both the Grade IDs are same and the value is empty in MAPL- LOEKZ for MAPL-
PLNNR, then no action to be done.
- Result 2 - Both the Grade IDs are same and the value ‘X’ is found in MAPL- LOEKZ for MAPL-
PLNNR, then material has to be linked to the inspection plan by calling the function module
BAPI_INSPECTIONPLAN_CHANGE and the MAINTAIN_MODE = C –
Result 3 -Both the Grade IDs are different and the value is empty in MAPL- LOEKZ for the MAPL-
PLNNR, then call the function module BAPI_INSPECTIONPLAN_CHANGE and the
MAINTAIN_MODE = D to delete the MAPL-PLNNR and the KEY_DATE should be system date .
(Test Data in BAPI - Shanker -Delete - Mat & Grade assignment). In  the same function module
pass the new Grade ID and the material coming from the app MAINTAIN_MODE = C to link it.
(Bapi test data: Shanker - Material Link to Inspection Pl) -
- Result 4 - Both the Grade IDs are different and the value is ‘X’ in MAPL- LOEKZ for the MAPL-
PLNNR, then call the function module BAPI_INSPECTIONPLAN_CHANGE and the
MAINTAIN_MODE = C and pass the new Grade ID and the material from the app to link it.

Version 12.7

When a Grade ID (PLNNR) is changed in the app for the Material(MATNR) and Plant(WERKS), while deleting
the old Inspection plan MAPL-PLNNR for the material using the function ZUS_SOP_303_INSP_PLAN in the
BAPI_INSPECTIONPLAN_CHANGE under the program LZUS_SOP303F01, the parameter plant that is
passed in the BAPI is changed to MAPL-WERKS instead of KNMT-WERKS. This resolves the “Object not
found” Bapi error while submitting the Workflow from the OSA Panel.

BOM Creation for the material

When submitting from the OSA App, the program will check if the in the include LZUS_SOP303F01 if the BOM
is created for the material and the active plant from KNMT-WERKS. If not then it will use the function module
CSAP_MAT_BOM_CREATE to create the BOM for the material with the configurable material.

Input parameters
Material number
` 29 of 97
Plant from KNMT
BOM usage = 1

Tech Targets and Tech Target Groups Info:

Take the Grade ID what user enters in the app and from the table PLPO get the data where PLPO-VPLNTY =
S and its list of PLPO-VPLNR. Take all these data into a custom function module ZXXXXXX to select the right
PLPO-VPLNR (Reference Operation set) which has the characteristics QM_PRODUCT_TYPE_ID = Product
ID for the material that is entered in the app and the if Coat Substrate ID is available then it should match to the
characteristics QM_SUBSTRATE_ID value.
Once the correct PLPO-VPLNR is selected, go to the table PLKO to get the KTEXT = Tech Target and the
Characteristics QM_GROUPING_ID value = Tech Target Group. After getting the group number, go to the
table ZUS_QM535_GRP and pass the group number in the field GRP_ID to get the GRP_TEXT for displaying.

Order Acknowledgement Product long and Short IDs

Below is the logic to update the characteristics ORD_ACKN_PROD_LONG & ORD_ACKN_PROD_SHORT in


the material.

Use the parameter table ZUS303ORDACKNPROD with the below logic in the include LZUS_SOP303F02

ProductID Product ProductLongName ProductTypeID Order Comments

1 HRB Hot Rolled Black 2 10 NULL

2 HR_TR Hot Rolled Temper Rolled 2 20 NULL

3 HR_P Hot Rolled Pickled 2 30 Can be dry or oiled

4 HR_PTR Hot Rolled Pickled & TR 2 40 NULL

5 HR_Conv Hot Roll Conversion 2 50 Don't need now

6 CR Cold Rolled Steel 1 60 NULL

7 CRMart MartINsite CR Steel 1 70 Only CR

8 TEK_CR 6 1 80 NULL

9 CRFH Cold Rolled Full Hard Steel 3 90 Internal and external

10 CRML CR Motor Lamination Steel 1 100 NULL

11 CR_Enam Cold Rolled Enameling Steel 1 110 NULL

12 GI Galvanized Steel 5 120 No Tico Galvanized Steel

13 GA Galvannealed Steel 6 130 Durgrip at IHE/Kote

14 AL Aluminized Steel 9 140 NULL

15 AZ Galvalume Steel 8 150 NULL

16 EG Electrogalvanized Steel 4 160 At I/N Kote Zinkote Steel

17 EG_ZN Electrogalvanized ZincNickel 7 170 At I/N Kote Durzinklite

18 CRBPAR Black Plate as Rolled NULL 180 NULL

19 CRBPFF Black Plate Full Finish NULL 190 NULL

20 TCS Electrolytic Tin Coated Steel 11 210 Don't need now

21 TP Electrolytic Tin Plate 11 220 Don't need now

22 FLP Floor Plate NULL 230 NULL

23 Plt Plate NULL 240 Don't need now

24 TFS Electrolytic Chromium Coated Steel or Tin Free NULL 200 Don't need now

26 EG_MART Electrosite NULL NULL NULL


` 30 of 97
27 DUR_GA Durgrip Galvannealed NULL NULL For 5cgl and kote only

Logic in the Legacy SQL

Protected Sub SetAcknowlegeded()

        Select Case Prodid.SelectedValue


            Case "AL"
                SAP_ORD_ACKN_PROD_ID.Value = "14"
            Case "AZ"
                SAP_ORD_ACKN_PROD_ID.Value = "15"
            Case "CR"
                If SteelFamilyId.Value = "32" Then
                    SAP_ORD_ACKN_PROD_ID.Value = "7"
                ElseIf SteelFamilyId.Value = "36" Then
                    SAP_ORD_ACKN_PROD_ID.Value = "11"
                    'CR2977 - scm - TEK reqd
                    'ElseIf chkTekReq.Checked Then
                ElseIf rblTEK.SelectedValue = "TEK" Then
                    SAP_ORD_ACKN_PROD_ID.Value = "8"
                Else
                    SAP_ORD_ACKN_PROD_ID.Value = "6"
                End If
            Case "CRFH"
                SAP_ORD_ACKN_PROD_ID.Value = "9"
            Case "ZNNI"
                SAP_ORD_ACKN_PROD_ID.Value = "17"
            Case "EG"
                If SteelFamilyId.Value = "32" Then
                    SAP_ORD_ACKN_PROD_ID.Value = "26"
                Else
                    SAP_ORD_ACKN_PROD_ID.Value = "16"
                End If
            Case "FP"
                SAP_ORD_ACKN_PROD_ID.Value = "22"
            Case "GA"
                SAP_ORD_ACKN_PROD_ID.Value = "13"
            Case "GZ"
                SAP_ORD_ACKN_PROD_ID.Value = "12"
            Case "HRBL"
                SAP_ORD_ACKN_PROD_ID.Value = "1"
            Case "HRPK"
                SAP_ORD_ACKN_PROD_ID.Value = "3"
            Case "HRSK"
                SAP_ORD_ACKN_PROD_ID.Value = "2"
            Case "PKSK"
                SAP_ORD_ACKN_PROD_ID.Value = "4"
            Case "ML"
                SAP_ORD_ACKN_PROD_ID.Value = "10"
            Case Else
                SAP_ORD_ACKN_PROD_ID.Value = ""
        End Select
        If SAP_ORD_ACKN_PROD_ID.Value.Trim.Length > 0 Then
            Dim strAcknQuery As String

            strAcknQuery = "SELECT product, ProductLongName " & _


                             " FROM dbo.GN_Products " & _
                             " WHERE productID = " & SAP_ORD_ACKN_PROD_ID.Value

` 31 of 97
            Try
                cmdReader = corpQualDBRead.GetSqlStringCommand(strAcknQuery)
                Using drTargetRead As IDataReader = corpQualDBRead.ExecuteReader(cmdReader)
                    If drTargetRead.Read() Then
                        SAP_ORD_ACKN_PROD_SHORT.Value = drTargetRead("product")
                        SAP_ORD_ACKN_PROD_LONG.Value = drTargetRead("ProductLongName")
                    Else
                        SAP_ORD_ACKN_PROD_SHORT.Value = ""
                        SAP_ORD_ACKN_PROD_LONG.Value = ""
                    End If
                    If (Not drTargetRead Is Nothing) Then
                        drTargetRead.Close()
                    End If
                End Using
            Catch ex As Exception
                Label1.Text = "SetAcknowlegeded: " & Err.Description
                Label1.Visible = True
                _sErrorMessage = "MESSAGE: " & ex.Message & vbCrLf & "SERVER: " & oSF.App_ServerName &
vbCrLf & "STACKTRACE: " & Right(ex.StackTrace.ToString, 500) & vbCrLf & "SQL: " & strAcknQuery
                oSF.Write_Error_Log_Quality(Page.GetType().Name, "SetAcknowlegeded", Err.Number,
ex.Message, _sErrorMessage)
            End Try
        End If

    End Sub

Update the Production version for the Locked Route

1. Before creating the production version for a material while submitting from the Corp QA app, check in
the table MKAL-MATNR if any active PV is available for the material.
2. If there is any active PV found then, compare the version id MKAL-VERID with ZUS_303_ROUTES-
ROUTE where the ZUS_303_ROUTES-ROUTE- LOCKED = ‘X’. If it is same then exit without updating
the PV.
3. If the PV found for the material MKAL-VERID is different than the ZUS_303_ROUTES-ROUTE where
the ZUS_303_ROUTES-ROUTE- LOCKED = ‘X’, then lock the MKAL-VERID that is found and then
update the PV found in the ZUS_303_ROUTES-ROUTE where the ZUS_303_ROUTES-ROUTE-
LOCKED = ‘X’ which is updated via the app. Use the function module that is used now
CM_FV_PROD_VERS_DB_UPDATE(Inserting new record and locking the existing record can be done
at the same time). Test data created for this Material 603131 (MTF - Create & lock example).
Version 12.8
Corrected the below data input while creating the Production version.
MKAL-STLAL = 01 instead of 1.
MKAL-ALORT = MKAL-ALORT of SATNR (configurable material)

4. Another fix what needs to be done is if the user submits the data from Corp QA App without saving it
first, then the custom table ZUS_303_ROUTES is not getting updated. The table should get updated
both while save and submit.
V11.0:
5. At SAVE and SUBMIT, all the routes saved in the database zus_303_routes with MATNR as the key
are deleted and the new values from the App are saved instead.

Updating the MRP3 data in the material change scenario

` 32 of 97
In the material change scenario where the workflow will be (SWWWIHEAD-WI_RH_TASK) WS90000018, in
the action ‘submit’, update both the Basic data 2 (MARA-SATNR) and the MRP3 (MARC-STDPD) with the
changed values along with the other data that is already available with the function module
MATERIAL_SAVE_CONFIGURATION.

Updating the appropriate characteristics for coated and non-coated configurable materials

 In the include LZUS_SOP303F01, the below characteristic needs to be filtered When MARA-SATNR = below
values.

    WHEN 'HR' OR 'GA' OR 'GI' OR 'GZ' OR 'EG-ZN'.

      DELETE lt_input[] WHERE atnam = 'ORD_CUST_TEK_REQ'. "1
      DELETE lt_input[] WHERE atnam = 'ORD_CUST_HEAT_TREAT'. "2
      DELETE lt_input[] WHERE atnam = 'ORD_STENCIL'.   "3
      DELETE lt_input[] WHERE atnam = 'ORD_COAT_SUBSTRATE_ID'. "4
      DELETE lt_input[] WHERE atnam = 'ORD_COAT_SUBSTRATE'.  "5
      DELETE lt_input[] WHERE atnam = 'ORD_RESTR_COATING_IND'. "6
      DELETE lt_input[] WHERE atnam = 'ORD_COAT_WEIGHT_TEXT'. "7
      DELETE lt_input[] WHERE atnam = 'ORD_REQ_COAT_DRY_IND'. "8
      DELETE lt_input[] WHERE atnam = 'ORD_NICKEL_FLASH'.  "9
      DELETE lt_input[] WHERE atnam = 'VC_PRINT_TEXT_ZUSE'. "10
      DELETE lt_input[] WHERE atnam = 'ORD_CUST_WELDS_OK'. "11
      DELETE lt_input[] WHERE atnam = 'ORD_CLEAN_STEEL_NO_SMUT'.

    WHEN 'CR'.
      DELETE lt_input[] WHERE atnam = 'ORD_INSIDE_STORAGE'. "1
*      DELETE lt_input[] WHERE atnam = 'ORD_CUST_HEAT_TREAT'. "2
      DELETE lt_input[] WHERE atnam = 'ORD_STENCIL'.   "3
      DELETE lt_input[] WHERE atnam = 'ORD_COAT_SUBSTRATE_ID'. "4
      DELETE lt_input[] WHERE atnam = 'ORD_COAT_SUBSTRATE'.  "5
      DELETE lt_input[] WHERE atnam = 'ORD_RESTR_COATING_IND'. "6
      DELETE lt_input[] WHERE atnam = 'ORD_COAT_WEIGHT_TEXT'. "7
      DELETE lt_input[] WHERE atnam = 'ORD_REQ_COAT_DRY_IND'. "8
*            DELETE lt_input[] WHERE atnam = 'ORD_NICKEL_FLASH'.  "9
      DELETE lt_input[] WHERE atnam = 'VC_PRINT_TEXT_ZUSE'. "10
*     DELETE lt_input[] WHERE atnam = 'ORD_CUST_WELDS_OK'. "11

Picking right Coat Substrate

V11.0:
New correction to be put in the method: COATSUBSTRATESET_GET_ENTITYSET -> If the Product = GA or
GI for the material then:
- If the value of the GaugeMM(ORD_THICKNESS_MET) is < 1.8, the default Substrate value is CR
- If the value of the GaugeMM(ORD_THICKNESS_MET) is > 3.3, the default Substrate value is HR
- if the value of the GaugeMM(ORD_THICKNESS_MET) is between these two range then both the HR &
CR should be shown in the dropdown and the user will select what is needed.

Version 14.2 – CR00007293 – Duplicate coat substrates showing up


When selecting coat substrate to show in dropdown, do not consider deleted material assignments on
the task list. We also do not want to consider Inactive material assignments. If either of these fields are set,
then we do not want to show. Add to WHERE clause MAPL-LOEKZ = ‘ ’ AND MAPL-PARKZ = ‘ ’.

` 33 of 97
Width Tolerances Validation

1. If the characteristic ORD_WIDTH_TOL_PLUS_MET > 77.0000 then before submitting into Bapi and
error message to be thrown. Error Message “ORD Width Tol Plus cannot be more than 77.0

Continuous Anneal Heat Treatment

V11.0:
If steel family = mart, dp, trip or mp then heat treatement field = continuous anneal. If heat treatement
continuous anneal then only CA routes show up.

Add logic in OSA/CIM for Product Filter

Tile 3 – CIM (Corporate Inventory Management)

LAYOUT – CHANGE (DISPLAY SCREEN)


Table/Structure Field Name Format Default Value Column Name Translation Rule
Name (ie
decimal
places)
MARA WRKST Material
Number
MARC WERKS Facility
BUT000 NAME_ORG Customer KNMT-KUNNR;
1 Name look for knmt
matching material
number
Agent of MDA Assigned
Workflow
KNMT KDMAT Part Number

LAYOUT – NEW (EDIT SCREEN) Tab 3


Table/Structure Name Fiel Field Name Inpu Default Field Name Translati
d t Value on Rule
No. Typ
e
 PLANTDATA 1 MATERIAL – Internal     CIM  
Comments Comments
 PLANTDATA 2 REFMATCONS     Reference  
Material For
Consumptio
n
PLANTDATA D_TO_REF_M 12319999
PLANTDATA MULT_REF_M 01
PLANTDATA 3 PERIOD_IND Period Ind
PLANTDATA 4 PROC_TYPE Procuremen
t TYpe
PLANTDATA 5 MRP_CTRLER MRP
Controller
FORECASTPARAMETERS 6 HIST_VALS Historical
` 34 of 97
Periods
FORECASTPARAMETERS 7 FORE_PDS Forecast
Periods
PLANTDATA 8 MRP_TYPE MRP Type
PLANTDATA 9 PLAN_STRGP Managed
Ind
FORECASTPARAMETERS 10 FORE_MODEL Forecast
Model
PLANTDATA 11 SAFETY_STK Safety Stock
FORECASTPARAMETERS 12 TRACKLIMIT Tracking
Limit
PLANTDATA 13 AVAILCHECK Availability
Check
PLANTDATA 14 MIN_SAFETY_STK Min Safety
Stock
PLANTDATA 15 SAFETYTIME Safety Time
PLANTDATA 16 SAFTY_T_ID Safety Time
Ind
PLANTDATA 17 REPLENISHMENT_LEAD_TIM Total
E Repleishme
nt Lead
Time
PLANTDATA 18 PRODPROF Production
Scheduling
Profile
`FORECASTPARAMETER INITIALIZE X
S
HEADDATA MATERIAL Material
Number
HEADDATA IND_SECTOR M
HEADDATA MATL_TYPE ZPRT
HEADDATA MRP_VIEW X
HEADDATA FORECAST_VIEW X
HEADDATA WORK_SCHED_VIEW X

When user submits the data in the CIM app, the program will remove the X-plant Material status block = 01, so
that the part is complete now and can be used for the sales order allocation purposes.

If a material is created for more than one plant, then the plant that is visible in the CIM app for the users will be
taken from Customer material info record KNMT-WERKS and the same will be passed into the BAPI to read
the MRP data in the app and the update will also happen for the same plant.

Updating the MRP3 data in the material change scenario

In the material change scenario where the workflow will be (SWWWIHEAD-WI_RH_TASK) WS90000018,
update always both the Basic data 2 (MARA-SATNR) and the MRP3 (MARC-STDPD) with the changed values
along with the other data that is already available using the function module
MATERIAL_SAVE_CONFIGURATION

Commit delay in CIM text – due to the text not getting updated at the first instance while saving, in the program
a delay for 5 seconds has been put after the commit.

` 35 of 97
V11.0:
Planning Time Fence: when submitting the data from CIM app BAPI_MATERIAL_SAVEDATA when you pass
the data in the field REPLENTIME the same value will be passed in the field PL_TI_FNCE (Planning time
fence).

Text updates in the Materials for MDA.OSA, CIM

Function module SAVE_TEXT is used for updating the texts into material long text with the below text objects.

TDOBJECT-MATERIAL
TDNAME - the material number with leading zeros.
TDID - GRUN for Basic data text
PRUE for OSA text
IVER for CIM text

ZSTATUS Report

For a better understanding of the materials that needs to be prioritized for completion, the ZSTATUS report is
being deployed to the master data team for them to look at the orders and then start working on the materials
that should be completed first.

Tile Catalog: ZSTATUS


Tile Group: ZSTATUS

V11.0:
ZSTATUS Report modification:
1. Create a new column – “NAFTA ID” "
2. Added 4 new push buttons as below

` 36 of 97
Orders with H3 blocks will be removed from MDA and OSE apps in the change scenario.

Workflow
WRIC Description Business / Data Object (Sales Engaged Parties Owner
EF-ID Order)
XX-xx- BUS1001006 Material create MDA Team
W001 Header Tasks
WS90000014 – New
Material create
WS90000018 – Material
change

Process Flow Diagram

Please Refer to the Visio Process Flows File.

Trigger Events
Create event for material Creation
Use function module SWE_EVENT_CREATE to create a event new material with the Header Task
WS90000014
OBJTYPE BUS1001006
OBJKEY MARA-MATNR where MARA = NAFTAID
EVENT CREATED
START_RECFB_SYNCHRON X
material_type    = 'ZPRT'
industry_sector  = 'M'
required_numbers = '1

The material will be in MDA Pannel worklist once it is created successfully with Customer material Info record in it.

Create event for material change


Use function module SWE_EVENT_CREATE to change a material with the Header Task WS90000018
OBJTYPE BUS1001006
OBJKEY MARA-MATNR where MARA = NAFTAID
EVENT CREATED
START_RECFB_SYNCHRON X

Any NAFTA change trigger will cancel the existing workflow and will create a new workflow and will be in the MDA
App.

Material Characteristics Display App – Odata service.

SAP OData Service- Modification

Odata Project : ZUS_SOP303_MATMASTER


` 37 of 97
Odata Entity sets : MATNRMARASet
Odata Service : /sap/opu/odata/sap/ZUS_SOP303_MATMASTER_SRV/MATNRMARASet(Material='6XXXXX')

Input Parameters:

The users will search the materials based on the below search keys.

Fields Description Comments


MARA-MATNR Material Number
KNMT-KDMAT Customer Part Number Currently not active
MARA-WRKST NAFTA ID Currently not active

Display Fields in the Report:

The report will pull the data from the material table and its characteristics table and is organized per the material
departments.
MDA – Master Data
OSA – Corporate Quality
CIM – Central Inventory Management

The report displays the NAFTA related header data first for the material and then has the fields organized per above
departments. For non-nafta materials, the report pulls basic material details along with Customer material information.
For getting the values for the material characteristics, use the below logic:

1. Pass the material number entered in the input screen into MARA-MATNR to get the configuration object
number MARA-CUOBF.
2. Use the function CUXM_GET_CONFIGURATION enter the configuration object number MARA-CUOBF into
the import parameter INSTANCE and get all the required characteristics values E1CUVAL.

Version 12.5
LAYOUT – Header Data NAFTA
Table / Structure / Function Field Name / Characteristics Field Input Field Field Logic
Grou Type Name
p
BUT000 NAME_ORG1 Nafta Char Customer Input MATNR into
Info displa Name KNMT-MATNR and get
y field KNMT-KUNNR; pass
KNMT-KUNNR into
BUT000- PARTNER
and get NAME_ORG1
CUXM_GET_CONFIGURATI ORD_PART_SHIP_CITY Nafta Char Ship City /  
ON Info displa State
y field
KNMT MATNR Nafta Char Material Input MATNR into
Info displa Number KNMT-MATNR and get
y field KNMT-MATNR
KNMT KDMAT Nafta Char Part Input MATNR into
Info displa Number KNMT-MATNR and get
y field KNMT-KDMAT
KNMT POSTX Nafta Char End Use Input MATNR into
Info displa KNMT-MATNR and get
y field KNMT- POSTX
MARA WRKST Nafta Char NAFTA ID Input MATNR into
Info displa KNMT-MATNR and get
` 38 of 97
y field KNMT- WRKST
CUXM_GET_CONFIGURATI ORD_PLATFORM Nafta Char Platform  
ON Info displa
y field
CUXM_GET_CONFIGURATI ORD_MODEL Nafta Char Model  
ON Info displa
y field
CUXM_GET_CONFIGURATI ORD_QUE_PRODUCT_ID Nafta Char Product  
ON Info displa
y field
CUXM_GET_CONFIGURATI ORD_THICKNESS_MET or Nafta Char Gauge Determined based on
ON Info displa ORD_DIM_UNIT_OF_MEAS
URE
ORD_THICKNESS_ENG y field

CUXM_GET_CONFIGURATI ORD_WIDTH_MET or Nafta Char Width Determined based on


ON Info displa ORD_DIM_UNIT_OF_MEAS
URE
ORD_WIDTH_ENG y field
CUXM_GET_CONFIGURATI ORD_DIM_UNIT_OF_MEAS Nafta Char Unit of  
ON URE Info displa Measure
y field
CUXM_GET_CONFIGURATI ORD_LENGTH_MET or Nafta Char Length Determined based on
ON Info displa ORD_DIM_UNIT_OF_MEAS
URE
ORD_LENGTH_ENG y field

KNMT WERKS Nafta Char Plant Input MATNR into


Info displa KNMT-MATNR and get
y field KNMT- WERKS
CUXM_GET_CONFIGURATI ORD_CAST_PLANT Nafta Char Caster  
ON Info displa
y field
CUXM_GET_CONFIGURATI ORD_HOTROLL_PLANT Nafta Char Hot Roll  
ON Info displa
y field
CUXM_GET_CONFIGURATI ORD_COLDROLL_PLANT Nafta Char Cold Roll  
ON Info displa
y field
CUXM_GET_CONFIGURATI ORD_COATING_PLANT Nafta Char Coat  
ON Info displa
y field
  English Nafta Radio   Not used
Info button
  Metric Nafta Radio   Not used
Info button
ZUS303NFTURL SAP Documents Nafta Push   Input material into
Doc type - SALES Info button VBAP-MATNR and gets
the latest VBAP-
KUNNR where VBAK-
AUART=ZSO

Parameter table NAFTA Documents Nafta Push   Pass the NAFTA ID


Doc type - NAFTA Info button from MARA-WRKST as
ZUS303NFTURL the variable for the input

` 39 of 97
MATNR

Z_C_MATDASH_OPEN- WFStatus Nafta Char WF Search steps:


CURRENT_PHASE or Info displa Status
SWWWIHEAD- WI_STAT y field Step1 – KNMT-MATNR
into
Z_C_MATDASH_OPEN
- MATERIAL with
parameter p_flag = M"
and get value from
CURRENT_PHASE
if no values found in the
above step, then
proceed to the next step

Step2 – Pass the


KNMT-MATNR into
SWWWIHEAD-
WI_TEXT with wildcard
character (*) in the front
of the MATNR and get
the value from
WI_STAT where
TOP_TASK =
WS90000014 or
WS90000018
SWWWIHEAD- WI_AED WFCompdate Nafta Char WF Pass the KNMT-
Info displa Completio MATNR into
y field n Date SWWWIHEAD-
WI_TEXT with wildcard
character (*) in the front
of the MATNR and get
the value from WI_AED
where TOP_TASK =
WS90000014 or
WS90000018
(Note: This field should
be populated only if
value in SWWWIHEAD-
WI_STAT is
“COMPLETED”).

SAP UI - Modifications

Service : zsop_md_matinfo
ID : arcelorMittal.materialinfo

Add two new fields in the service as described below under the header section Nafta info.

LAYOUT – UI5
Service Field Name Input Type Field Group Field Name Translation Rule

` 40 of 97
zsop_md_matinfo WFStatus  Char Display  Nafta Info WF Status Bind to entity set
field MATNRMARASet -
WFStatus
zsop_md_matinfo WFCompdate Char Display field Nafta Info WF Bind to entity set
Completion MATNRMARASet -
Date WFCompdate

LAYOUT – Master Data MDA


Table/Structure Name Field Name Input Field Field Translatio
Type Grou Name n Rule
p

CUXM_GET_CONFIGURATIO ORD_CONTRACT_NUMBER  Char   Contract  


N displa Number
y field
 CUXM_GET_CONFIGURATIO ORD_QUE_PRODUCT_ID Char   Queue  
N displa Prod ID
y field
 CUXM_GET_CONFIGURATIO ORD_ALT_CUST_PART Char   Honda  
N displa MSA
y field Number
 CUXM_GET_CONFIGURATIO ORD_DIM_UNIT_OF_MEASURE Char   Gauge  
N displa
y field
 CUXM_GET_CONFIGURATIO ORD_THICKNESS_ENG, Char    
N ORD_THICKNESS_MET displa
y field
 CUXM_GET_CONFIGURATIO ORD_THICKNESS_TYPE Char    
N displa
y field
 CUXM_GET_CONFIGURATIO ORD_WIDTH_ENG, Char   Width  
N displa
y field
 CUXM_GET_CONFIGURATIO ORD_WIDTH_MET Char    
N displa
y field
 CUXM_GET_CONFIGURATIO ORD_WIDTH_TYPE Char    
N displa
y field
 CUXM_GET_CONFIGURATIO ORD_LENGTH_ENG, Char   Length  
N displa
y field
 CUXM_GET_CONFIGURATIO ORD_LENGTH_MET Char    
N displa
y field
 CUXM_GET_CONFIGURATIO ORD_LENGTH_TYPE Char    
N displa
y field
 CUXM_GET_CONFIGURATIO ORD_CUST_EDGE Char   Edge  
N displa Condition
y field
 CUXM_GET_CONFIGURATIO ORD_STEEL_FORM Char   Form  
N displa
` 41 of 97
y field
 CUXM_GET_CONFIGURATIO ORD_OIL_TYPE_DESC Char   Oil Type  
N displa
y field
 CUXM_GET_CONFIGURATIO ORD_OIL_BRAND_DESC Char   Oil Brand  
N displa
y field
 CUXM_GET_CONFIGURATIO ORD_OIL_AMOUNT_DESC Char   Oil  
N displa Amount
y field
 CUXM_GET_CONFIGURATIO ORD_FINISH_DESC Char   Finish  
N displa
y field
 CUXM_GET_CONFIGURATIO ORD_COIL_OUTER_DIA_MAX, Char   Coil OD  
N ORD_COIL_OUTER_DIA_MAX_ME displa
T y field
 CUXM_GET_CONFIGURATIO ORD_COIL_INNER_DIA, Char   Coil ID  
N ORD_COIL_INNER_DIA_MET displa
y field
 CUXM_GET_CONFIGURATIO ORD_MAX_COIL_WEIGHT, Char   Max Coil  
N ORD_MAX_COIL_WEIGHT_ENG displa WT
y field
 CUXM_GET_CONFIGURATIO ORD_COIL_WEIGHT_UOM Char   UoM  
N displa
y field
 CUXM_GET_CONFIGURATIO ORD_EXPOSURE_CODE Char   Exposure  
N displa
y field
 CUXM_GET_CONFIGURATIO ORD_CUST_PRIME_SIDE Char   Primeside  
N displa
y field
 CUXM_GET_CONFIGURATIO Basic data text in master data – for Char   Comments  
N MDA team displa
y field
 CUXM_GET_CONFIGURATIO Document data in master data Char   View  
N displa Document
y field s
 CUXM_GET_CONFIGURATIO Workflow status Char   Hold  
N displa
y field
 CUXM_GET_CONFIGURATIO Workflow comments Char   Hold  
N displa Comments
y field
 CUXM_GET_CONFIGURATIO ORD_OP_AGREEMENT_NUMBER Char   Warehous  
N displa e Only
y field Required
           

LAYOUT – Corporate QA (OSA)


Table/Structure Name Field Name Defaul Column Name Translatio
t Value n Rule
CUXM_GET_CONFIGURATIO ORD_PROD_TYPE_ID Char OrdProductType
N displa
y field
` 42 of 97
CUXM_GET_CONFIGURATIO ORD_BOOK Char Book
N displa
y field
CUXM_GET_CONFIGURATIO ORD_TECH_TARGET_GROUP Char TechTargetGroup
N displa
y field
CUXM_GET_CONFIGURATIO ORD_CUST_QUALITY_DESC Char CustQualityDesc
N displa
y field
CUXM_GET_CONFIGURATIO Display Only* Char Tensile
N displa
y field
CUXM_GET_CONFIGURATIO Display Only* Char R-Bar
N displa
y field
CUXM_GET_CONFIGURATIO ORD_CERT_STATEMENT Char CertStatementCode
N displa
y field
CUXM_GET_CONFIGURATIO ORD_CHEM_PROP_REVIEW_IN Char ChemPropReview
N D displa
y field
CUXM_GET_CONFIGURATIO ORD_RESTR_COATING_IND Char RestrictedCoating
N displa
y field
CUXM_GET_CONFIGURATIO ORD_RESTR_THICK_TOL_IND Char RestrictedThicknessT
N displa ol
y field
CUXM_GET_CONFIGURATIO ORD_COAT_WEIGHT_TEXT Char CoatWeight
N displa
y field
CUXM_GET_CONFIGURATIO ORD_CUST_SPEC_ID Char Spec
N displa
y field
CUXM_GET_CONFIGURATIO ORD_TECH_TARGET Char TechTarget
N displa
y field
CUXM_GET_CONFIGURATIO ORD_CUST_INCLUSION Char CustInclusion
N displa
y field
CUXM_GET_CONFIGURATIO Display Only* Char Yield
N displa
y field
CUXM_GET_CONFIGURATIO Display Only* Char N-Value
N displa
y field
CUXM_GET_CONFIGURATIO ORD_TEST_RPT_REQ Char TestReportReq
N displa
y field
CUXM_GET_CONFIGURATIO ORD_RESTR_CHEM_IND Char RestrictedChem
N displa
y field
CUXM_GET_CONFIGURATIO ORD_REQ_COAT_DRY_IND Char ReqCoatDry
` 43 of 97
N displa
y field
CUXM_GET_CONFIGURATIO ORD_RESTR_WIDTH_TOL_IND Char RestrictedWidthTol
N displa
y field
CUXM_GET_CONFIGURATIO ORD_COAT_SUBSTRATE_ID Char CoatSubstrate
N displa
y field
CUXM_GET_CONFIGURATIO ORD_CUST_GRADE_ID Char Grade
N displa
y field
CUXM_GET_CONFIGURATIO ORD_STEEL_FAMILY_ID Char SteelFamily
N displa
y field
CUXM_GET_CONFIGURATIO ORD_NICKEL_FLASH Char NickelFlash
N displa
y field
CUXM_GET_CONFIGURATIO Display Only* Char Elogation
N displa
y field
CUXM_GET_CONFIGURATIO ORD_SPECIAL_SPC_CHAR Char SpecialSPCChar
N displa
y field
CUXM_GET_CONFIGURATIO ORD_RESTR_PROP_IND Char RestrictedProp
N displa
y field
CUXM_GET_CONFIGURATIO ORD_REQ_TENSION_LEVEL_IN Char ReqTensionLevel
N D displa
y field
ORD_RESTR_FLAT_IND RestrictedFlatness
Read from MKAL-VERID based Route
on the Cross-Plant Configurable
Material and Ship City
MKAL-TEXT1 RouteName
Check Box Qualified
Check Box Capable
Check Box Lock
Text box for each route Comments*
CUXM_GET_CONFIGURATIO ORD_INSIDE_STORAGE Char Inside Storage
N displa
y field
CUXM_GET_CONFIGURATIO ORD_STENCIL Char Stencil Req
N displa
y field
CUXM_GET_CONFIGURATIO ORD_SURFACE_CRITICAL Char Clean Surface/No
N displa Smut
y field
CUXM_GET_CONFIGURATIO ORD_CUST_TEK_REQ Char TEK IHE Req
N displa
y field
CUXM_GET_CONFIGURATIO ORD_CUST_SPEC_SHORT Updated
N automatically at the
` 44 of 97
backend in the
material by the
program. No user
Input is provided.

LAYOUT – Central Inventory Management (CIM)

Table/Structure Name Field Name Input Type Field Name Translation Rule

 MARC VRBMT Char display Reference  


field Material For
Consumption
MARC PERKZ Char display Period Ind
field
MARC BESKZ Char display Procurement
field TYpe
MARC DISPO Char display MRP
field Controller
MPOP PERAN Char display Historical
field Periods
MPOP ANZPR Char display Forecast
field Periods
MARC DISMM Char display MRP Type
field
MARC STRGR Char display Managed Ind
field
MPOP PRMOD Char display Forecast
field Model
MARC EISBE Char display Safety Stock
field
MPOP SIGGR Char display Tracking
field Limit
MARC AVAILCHECK Char display Availability
field Check
MARC EISLO Char display Min Safety
field Stock
MARC SHZET Char display Safety Time
field
MARC SHFLG Char display Safety Time
field Ind
MARC WZEIT Char display Total
field Repleishment
Lead Time
MARC PRODPROF Char display Production
field Scheduling
Profile

Version 12.0 Changes

New Fields in the CIM Panel

` 45 of 97
1. Min Safety Stock Weeks - This should be updated to a new field identified in the Material Master under
Forecasting data view in the field Periods per season (MPOP-PERIO) – Create a new plain text input field
in the CIM panel below the field Min Safety Stock. In the Gateway Services MatnrCIMSet add the new input
field “Min SS (Wks)” in the service with length 3.
In the UI, new field input to be added and will read data from this service MatnrCIMSet and the method
zcl_zus_get_cimdata. While submitting from the UI Panel using method
MATNRCIMSET_UPDATE_ENTITY, use the include LZUS_SOP303F02 in the backend to update this
field in the material master under Forecasting data field MPOP-PERIO using
BAPI_MATERIAL_SAVEDATA in the field BAPI_MPOP - PERIO and BAPI_MPOPX – PERIO = ‘X’.

2. MRP Type: Populate the value automatically based on MTO or MTF indicator selected by the user.
Below is the combination table. No change is needed in the logic for field mapping in the gateway Odata
service. If the user overwrites the data that is automatically populated in the UI than that should be taken
preference and that data should be updated in the backend material master.

MTO/MTF MRP Type


MTF PD
MTO X0
SS MTO X0

3. Direct Part: Add a new check box field called “Direct Part” in the CIM Panel. This indicator to be added
in the material master under the Work Scheduling data view in the filed Critical Part MARC-KZKRI.
In the Gateway Services under the MatnrCIMSet add the Checkbox input field “Direct Part” and should read
the data using the method zcl_zus_get_cimdata.
While save or submit from the user, UI should send the field as ‘N’ if un-checked and ‘Y’ if checked using
the method MATNRCIMSET_UPDATE_ENTITY and use the include LZUS_SOP303F02 in the backend to
update this field in the material master using BAPI_MATERIAL_SAVEDATA in the field BAPI_MARC-
KZKRI and BAPI_MARCX- KZKRI = ‘X’.
By default, the checkbox will be un-checked in the UI and If the user checks this field in the Fiori screen
then the UI will send the indicator Y.

Version 12.1 Changes

1. Characteristics ORD_FLAT_TOL_PLUS should be less than or equal to 5 when characteristics


ORD_FLAT_TOL_UOM = ‘IN’, change the code in the Include LZUS_SOP303F02.
2. New correction to be put in the method: COATSUBSTRATESET_GET_ENTITYSET -> If the Product =
GA or GI for the material then:

 If the value of the GaugeMM is < 1.6 mm, the default Substrate value is CR
              If the value of the GaugeMM is > 3.3 mm, the default Substrate value is HR
              Else if defaults to CR but both CR/HR show
 If the value of the GaugeIN is < 0.063 in, the default Substrate value is CR
              If the value of the GaugeIN is > .130 in, the default Substrate value is HR
              Else if defaults to CR but both CR/HR show

Version 12.3 Changes

- TR ED4K941177 – Part hold release and MRP 3 Data update


Bug fix in the code for the program LZUS_SOP303F01 Part hold releases but material id doesn't fill
in and does not update multiple sales orders when part hold released.
` 46 of 97
- Production version update – bug fix in the program LZUS_SOP303F04 for Alternative BoM and
Receiving location field updates.

Alternative BOM MKAL-STLAL should be ‘01’ instead of ‘1’


Add new field MKAL-ALORT which should be equal to the ALORT of the SATNR for the
material.
Correct the reading for the Group counter MKAL-ALNAL = ALNAL of the SATNR for the
material.

Version 12.6
TR ED4K941523 CHG0096980 - Remove H3 Block even if no Material Change
CHG0096980 Part holds are not releasing when the material is ready
Bug fix in the code for the program LZUS_SOP303F01 Part hold releases but does not release the part
hold in sales orders

Version 12.7

Work items CIM

In the class ZCL_ZUS_SOP303_MATMAST_DPC_EXT under the method


WORKITEMSCIMSET_GET_ENTITYSET the plant (WERKS) for the Workitems that are displayed should
be taken from KNMT-WERKS instead MARC-WERKS.

Version 12.8

Populate two new fields in the Material master in the Advanced Planning tab while submitting the material
from CIM Panel.
MARC-PPSKZ = X
MARC-SCM_RRP_TYPE = 4

In the Bapi BAPI_MATERIAL_SAVEDATA, populate the below fields if the data in plantdata-
plan_strgp = 'ZC'

plantdata-adv_plng_ind = X
plantdata-rrp_planning_type = '4'

else clear the value for the above fields.

Rules and Determination

` 47 of 97
Standard Rules Latest End, Latest Start

http://sp.arcelormittalusa.com/fcna/IH/ITPMTemplate/SAPMTF/2%20%20Blueprint/OSE%20-%20Rules/Part%20OSE
%20Panel%20checks_11072017.xlsx?web=1

Validation Rules for the master data screen


Her are the checks in the PA completion module.  Let me know if you have any questions:

If length then steel form cannot be coil


Width Tolerance Plus must be less than 3.0 for English
Width Tolerance Plus must be less than 76.2 for Metric
Minus Width Tolerance must be 0 for MIN
Minus Width Tolerance must be > 0 for NOM
Same as above for Gauge and Length except different English and Metric values
 If Prodid.SelectedValue.Contains("HR") Or Prodid.SelectedValue = "PKSK"
custSpec.Text.Contains("ASTM") Then
                    GA Tolerance cannot be 1/4 STD for ASTM Specs"
                    GA Tolerance cannot be 1/2 STD for ASTM Specs"
                    GA Tolerance cannot be 3/4 STD for ASTM Specs"
Gauge Tolerance of +10% Requires a Gauge Thickness Type of MIN
Gauge Tolerance of +/-5% Requires a Gauge Thickness Type of NOM
If CUSTOMER_LEVEL_1_CODE.Value.Trim = "410" Then
                If contractPO.Text.Trim.Length > 0 Then
                    If part_num.Text.Contains("-T") Then
                    Else
                        If contractPO.Text.ToUpper.Contains("GMMX") Or _
                           contractPO.Text.ToUpper.Contains("GMSR") Or _
                           contractPO.Text.ToUpper.Contains("GMCA") Or _
                           Microsoft.VisualBasic.Left(contractPO.Text, 2) = "92" Or _
                           Left(contractPO.Text, 2) = "0J" Or _
                           Left(contractPO.Text, 2) = "2D" Or _
                           Left(contractPO.Text, 2) = "GZ" Or _
                           Left(contractPO.Text, 2) = "5L" Or _
                           Microsoft.VisualBasic.Left(contractPO.Text.ToUpper, 2) = "8D" Then
                            If contractPO.Text.Length > 8 Or contractPO.Text.Length < 7 Then
                                Label1.Text += "<br>Invalid contract number for GM"
                            End If
                        Else
                            Label1.Text += "<br>Invalid contract number for GM"
                        End If
                    End If
                Else
                    Label1.Text += "<br>Must have a contract number for GM"
Invalid HondaMSA number for Honda
If coated product then must have Coat Weight
Also if not a coating product then must not have coat weight
if coil then Max Coil weight must be entered
Coil ID cannot be 0 for Coil Form
If OD entered OD range must be 40 - 90 Inches when entered
For cut to length or special blanks length must be populated with a value between 0.25 and 1200
For OIL type of DRY must have NONE in amount and brand
For OIL type of OIL amount cannot be NONE
` 48 of 97
For OIL type of OIL brand must be OIL or VANISHING OIL or QUAKER 61-AUS
For OIL type of PRELUBE amount cannot be NONE
For OIL type of PRELUBE brand must be QUAKER FERROCOTE or FUCH
If Prodid.SelectedValue.Contains("HR") Or _
                    Prodid.SelectedValue = "FP" Or _
                    Prodid.SelectedValue = "PKSK" Then
                If EngGauge < 0.04 Or EngGauge > 1.2 Then
                    Label1.Text += "<br>Gauge not within valid range"
                End If
                If EngWidth < 0.25 Or EngWidth > 79 Then
                    Label1.Text += "<br>Width not within valid range"
                End If
            End If
            If Prodid.SelectedValue.Contains("CR") Or _
                            Prodid.SelectedValue = "ML" Then
                If EngGauge < 0.012 Or EngGauge > 0.13 Then
                    Label1.Text += "<br>Gauge not within valid range"
                End If
                If EngWidth < 0.25 Or EngWidth > 74 Then
                    Label1.Text += "<br>Width not within valid range"
                End If
            End If
            If Prodid.SelectedValue.Contains("EG") Or _
                            Prodid.SelectedValue = "ZNNI" Then
                If EngGauge < 0.012 Or EngGauge > 0.085 Then
                    Label1.Text += "<br>Gauge not within valid range"
                End If
                If EngWidth < 0.25 Or EngWidth > 73 Then
                    Label1.Text += "<br>Width not within valid range"
                End If
            End If
            If Prodid.SelectedValue.Contains("GZ") Then
                If EngGauge < 0.012 Or EngGauge > 0.175 Then
'CR2443_QLTY_OSE_Change_GZ_Thickness_Constraint_to_0.175
                    Label1.Text += "<br>Gauge not within valid range"
                End If
                If EngWidth < 0.25 Or EngWidth > 73 Then
                    Label1.Text += "<br>Width not within valid range"
                End If
            End If
            If Prodid.SelectedValue.Contains("GA") Then
                If EngGauge < 0.013 Or EngGauge > 0.16 Then
                    Label1.Text += "<br>Gauge not within valid range"
                End If
                If EngWidth < 0.25 Or EngWidth > 73 Then
                    Label1.Text += "<br>Width not within valid range"
                End If
            End If
            If Prodid.SelectedValue.Contains("AL") Then
                If EngGauge < 0.014 Or EngGauge > 0.118 Then
                    Label1.Text += "<br>Gauge not within valid range"
                End If
                If EngWidth < 0.25 Or EngWidth > 62 Then
` 49 of 97
                    Label1.Text += "<br>Width not within valid range"
                End If
            End If
            If Prodid.SelectedValue.Contains("AZ") Then
                If EngGauge < 0.012 Or EngGauge > 0.04 Then
                    Label1.Text += "<br>Gauge not within valid range"
                End If
                If EngWidth < 0.25 Or EngWidth > 50 Then
                    Label1.Text += "<br>Width not within valid range"
                End If
            End If
            If Steel_Form.SelectedValue = "C" Then
                If Not IsNothing(EngWidth) Then
                    If EngWidth > 0 Then
                        If MaxCoilLbs / EngWidth > 1250 Then
                            Label1.Text += "<br>PIW > 1250"
                        End If
                    End If
                End If
                If MaxCoilLbs > 100000 Then
                    Label1.Text += "<br>Max Coil Weight must be < 100000 LBS"
                End If
            End If
Lots of VC checks for OD, Coilweight and product            
code to check the BOOK/SPEC/GRADE combo is valid                    

` 50 of 97
Version 14.0

14.1 Generic WRICEF Descriptions


JUSTIFICATION
Auto Forecasting Project Changes – New Logic for creating the Material Master
- The logic of creating the new Material master from NAFTA is suspended.
- The Workflow creation trigger point is changed.
- The Material Fiori panel is changed to have the header fields as input fields.

FUNCTIONAL DESCRIPTION / DESIGN


Functional Diagram (Visio doc maintained separately)

` 51 of 97
Process Owner System Description

Part Sheet Account Managers Email Spreadsheet Account manager receives the information about
the Forecast part from the HIS Spreadsheet and
other sources.
Part Sheet Account Mangers Email Spreadsheet Account communicates to MDA Part inititator for
creating a Auto part in the system via email by
sending the new part sheet Excel file. The Part sheet
will contain all the information about creating a new
part in the system which used to come from the
NAFTA MDG system.
Create Future Part MDA SAP S/4 MDA Part initiator uses the New Auto part creation
program for creating new SAP materials with all the
required attributes needed for Forecasting in IBP.
All the new Auto parts created in the system will have
“Future” as its initial status.
Forecast Part Report FA SAP S/4 A new SAP ALV report is created for Forecast Analyst
for them to review all the newly created part in the
system so that they can assign it to a respective
Mnemonic Material for the purpose of forecasting.

Activate Part MDA SAP S/4 When the Account manager decides to make the Auto
Part active, then he communicates it to the Part
Initiator via email and the PA will run the New Forecast
Part Report in the system to change the status of the
Part from “Future” to “Active”. This report will change
Status of the material and will trigger the existing
MDA workflow for completion of the part with all the
Required attributes for order booking.

TRANSACTION VOLUME
All the Auto product master data from S4 system. (Approx. 6500 parts)

FREQUENCY & TIMING


This transaction is an On-demand one.

DEPENDENCIES
The Part status custom field ZPART_STATUS should be created and all the existing parts are updated with the appropriate
status.

AUTHORIZATION REQUIREMENTS
Part initiators – For creating and updating the part along with the characteristics. Run the New Forecast Part report.
Forecast Analyst -Authorization for running the New Forecast Part report.

RELATED DOCUMENTATION (ATTACH OSS NOTES, EMAILS, DOWNLOAD OF EXISTING REPORT, ETC)
N/A

` 52 of 97
ASSUMPTIONS/FOLLOW-UP ACTIONS

The current NAFTA part creation program has to be discontinued and the batch job schedule to be stopped in the system on
prior to the day of go-live.

3. Object Specific Design

SAP UI - Modifications

Material Characteristics Display App – Odata service.

SAP OData Service- Modification

Odata Project : ZUS_SOP303_MATMASTER


Odata Entity sets : MATNRMARASet
Odata Service : /sap/opu/odata/sap/ZUS_SOP303_MATMASTER_SRV/MATNRMARASet(Material='6XXXXX')

The below fields have to be changed to input field from display only field. And when user saves the data to should
update back into the respective characteristics in Material master.

LAYOUT – Master Data MDA


Table/Structure Name Material Characteristics Name Input Field Field Name Translation
Type Group Rule

 CUXM_GET_CONFIGURATION ORD_PART_SHIP_CITY Input Ship City

 CUXM_GET_CONFIGURATION ORD_PART_SHIP_STATE Input   UoM  Dropdown


Values:
` 53 of 97
MM, IN
 CUXM_GET_CONFIGURATION ORD_DIM_UNIT_OF_MEASURE Input   UoM  Dropdown
Values:
MM, IN
 CUXM_GET_CONFIGURATION ORD_THICKNESS_ENG, Input   Gauge  If UoM is
IN
 CUXM_GET_CONFIGURATION ORD_THICKNESS_MET  If UoM is
MM
 CUXM_GET_CONFIGURATION ORD_THICKNESS_TYPE Input   Type  Dropdown
Values:
MIN, NOM
 CUXM_GET_CONFIGURATION ORD_WIDTH_ENG, Input   Width  If UoM is
IN
 CUXM_GET_CONFIGURATION ORD_WIDTH_MET Input    If UoM is
MM
 CUXM_GET_CONFIGURATION ORD_WIDTH_TYPE Input   Type  Dropdown
Values:
MIN, NOM
 CUXM_GET_CONFIGURATION ORD_LENGTH_ENG, Input   Length  If UoM is
IN
 CUXM_GET_CONFIGURATION ORD_LENGTH_MET Input    If UoM is
MM
 CUXM_GET_CONFIGURATION ORD_LENGTH_TYPE Input   Type  Dropdown
Values:
MIN, NOM
ZSOP760_PLANT_ID ORD_CAST_PLANT Input Caster
ZSOP760_PLANT_ID ORD_HOTROLL_PLANT Input Hot Roll
ZSOP760_PLANT_ID ORD_COLDROLL_PLANT Input Cold Roll
ZSOP760_PLANT_ID ORD_COATING_PLANT Input Coat

A new function is called ZSOP760_PLANT_ID with the below logic for populating the values for the below fields

Steelmake_id = PLPO-WERKS - where STEUS = ZP01 & PLPO-RFGRP = SC


Hot_roll_id = PLPO-WERKS where STEUS = ZP01 & PLPO-RFGRP = 70
Cold_roll_id = PLPO-WERKS where STEUS = ZP01 & PLPO-RFGRP = 31 if 20 or RK is not found.
Coating_id = PLPO-WERKS where STEUS = ZP01 & PLPO-RFGRP = 57 or 71 or 79
Core_unit_id = PLPO-WERKS where STEUS = ZP01 & PLPO- RASCH = CU

Input value – The Route ID PLPO-PLNNR (Eg. GA_22), where PLNTY = N

Output - The output format should be the SORT1 of the Plant table and the CRHD- ARBPL
where CRHD-OBJID = PLPO- ARBID. (eg. For the route id GA_22, the Steelmake_id should be CLEV-CPU

` 54 of 97
15 Additional Technical Specifications:
List of Different objects types being used in This RICEFW Object.

1. WORKFLOW: There 2 workflows have been Developed as part of the Material Creation and Material
change: Material Creation WS90000014 and Material change WS90000018.

2. Service Implementation in Gateway Service Builder. SEGW.

 Project: ZUS_SOP303_MATMASTER has been Created. Data Models and Service


Implementations and Runtime Artifacts have been Implanted Accordingly.
 Entity types: List of Entity types Created as per the required Data Model.
 Service Implementations: Service implementation for required Entity types.

` 55 of 97
3. Function modules: Below List of function modules have been implemented as part this Development.

ZUS_303_GET_WI_OWNR Get Workitem Owner


ZUS_SOP_303_C223 CAll CA02
ZUS_SOP_303_CA02 CAll CA02
ZUS_SOP_303_CHKFUNC Check Function Module to Trigger Workflow
ZUS_SOP_303_CIM_UPDATE Update Chars
ZUS_SOP_303_CORP_QLTY_UPDATE Update Chars
ZUS_SOP_303_FIND_AGENTS Agent Determination for Creating Views New Material
ZUS_SOP_303_FIND_AGENTS_EMAIL Agent Determination for Creating Views New Material
ZUS_SOP_303_GETTASKLISTS Get TaskLists for Char Vlaue
ZUS_SOP_303_GET_MATDATA Get Material Data
ZUS_SOP_303_MATVIEWS Material Views
ZUS_SOP_303_MM01 Create Views
ZUS_SOP_303_PURCH_INFOREC CAll CA02
ZUS_SOP_303_QP02 Call QP02
ZUS_SOP_303_UPDATE_CHARS Update Chars
ZUS_SOP_303_SEL_DESEL Select Deselect Workitem
ZUS_SOP_303_CRT_PRO_VER Create Production Versions
ZUS_SOP_303_ROUTES Create Update Routes Assignemtn and Pro Version
ZUS_SOP_303_INSP_PLAN Inspection Plan Assignment
ZUS_SOP_303_GET_TECHTARGETS Get Tech Targets values
ZUS_SOP_303_GETTASKLISTVALUES Get Task List Charecteristics values
ZUS_SOP_303_MECH_PROPS Mech Properties
ZUS_SOP_303_GET_TIMESTAMP Get Timestamp
ZUS_SOP_303_SAVETEXT Save Text

4. Custom Developed Class: SE24; Below List of Class have been implemented as part of this
Development.

ZCL_ZUS_SOP303_MATMAST_DPC
ZCL_ZUS_SOP303_MATMAST_DPC_EXT
ZCL_ZUS_SOP303_MATMAST_MPC
ZCL_ZUS_SOP303_MATMAST_MPC_EXT
ZCL_ZUS_SPO303_SPECK_DESC

5. List of tables:

ZUS_303_HLD_CMTS
ZUS_303_ROUTES
ZUS303STEELFAM it is a view created to get the Steel family details.

6. List of Param tables with Structures: Below are the List Param Tables and List of Structures have
developed As part of this Development.

ZUS_303_EMAIL_USERS SOP 303 Material MAster Workflow Email ID of Agents


ZUS_SOP303_MECHPROP Mech Properties
ZUS303_UPD_MAT_CHARS Update Material Chars
ZUS303COATINGWT Coating Weight
ZUS303COILDIDS Coild ID Value Help Combinations
ZUS303EXPOSURECODE Exposure Code
ZUS303GUAGEWIDTH Guage Width VAlidations
` 56 of 97
ZUS303NFTURL NAFTA URL for Document link
ZUS303OILTYPES Oil Type Validations
ZUS303ORDACKNPROD structure for ORD_ACKN_PROD_ID
ZUS303ORDACKSLONG Structure ORD_ACKN_SHORT_LONG
ZUS303PRODIDSATNR Product Id and CrospPlantCM
ZUS303VLDNCONSTANTS Constants for Validation 303
ZUS303VLDNFINTEMSUR Structure for Finish, temp and surface values
ZUSSOP303CRITICAL Critical Fields for Material Master
ZUSSOP303ROLES Roles for Material Workflow

7. List of Transports:

ED4K934937       KXTELU       SOP303:WF:New Mat or Version Upd with Outside Proccessing


ED4K934954       KXTELU       SOP303: Material Workflow
ED4K935699       KXTELU       SOP303: Material Master FIORI App
ED4K936551       LXKATI       ZUS_303_Steel family characterstic extraction
ED4K936853       LXKATI       SOP_303_SPECK_Description_extraction..
ED4K937024       LXKATI       SOP_303_Finish_temper_surface values storage
ED4K938400 GANEAG CHG0077639/CHG0077645/CHG0077647 - MTF Phase 1 issues
resolu
ED4K938349 GANEAG CHG0077645 - ZSTATUS report modification
ED4K938505 GANEAG CHG0080514/CHG0077647/CHG0077645 - OSA App conversion
Issues

Version 12.0

1) Min Safety Stock Weeks:

a) Append the zus303_upd_mat_chars with field PERIO.


b) Redefine the entity type MatnrCIM under odata project ZUS_SOP303_MATMASTER.
c) Add the property MinssWeeks of type Edm.String.
d) Save the property and generate run time objects.
e) Redefine the runtime artifacts ZCL_ZUS_SOP303_MATMAST_DPC_EXT.
f) Select PERIO along with other fields from join between prop and mapr based on the material in
the method MATNRCIMSET_GET_ENTITY.
g) Pass the field PERIO into the field MinssWeeks that added to the odata service.
h) In the method /IWBEP/IF_MGW_APPL_SRV_RUNTIME~CHANGESET_PROCESS when the
called set is MatnrCIMSet, get the value from MinssWeeks from Odata service and pass the
same to the SEASON_PDS under BAPI_MARC structure to update the value in SAP.

2) Direct Part:

a) Append the zus303_upd_mat_chars with field DIRECTPART as char10.


b) Redefine the entity type MatnrCIM under odata project ZUS_SOP303_MATMASTER.
c) Add the property DirectPart of type Edm.Boolean.
d) Save the property and generate run time objects.
e) Redefine the runtime artifacts ZCL_ZUS_SOP303_MATMAST_DPC_EXT.
` 57 of 97
f) Select kzkri along with other fields from function module CRS_MATERIAL_READ_ALL based
on material.
g) If kzkri EQ ‘X’ then pass the value as “TRUE” else pass “FALSE” to directpart.
i) In the method /IWBEP/IF_MGW_APPL_SRV_RUNTIME~CHANGESET_PROCESS when the
called set is MatnrCIMSet, get the value from directpart from Odata service and pass the same
to CRIT_PART under BAPI_MARC structure to update the value in SAP.

Version 12.1

Bug Fix in the Odata Services for the characteristics value update for ORD_COAT_SUBTRATE_ID
where if there is an empty value for this characteristics in the data coming from the panel then the code
was taking the previous characteristics value and it is updating in the material for this characteristics.

Code correction done to clear the characteristics value in the runtime from the previous characteristics
and if no value is filled for the current characteristics then the code takes the characteristics value from
the database and send it for BAPI update.

 ELSE.
    READ TABLE t_e1cuval INTO ls_e1cuval WITH KEY charc = ls_input-atnam.
    ls_input-mwert = ls_e1cuval-value.
  ENDIF.

Bug fix for ORD_FLAT_TOL_PO_TEXT to make sure to populate ‘—’ when ‘—’ is selected and make a
check to make sure the value is not ‘NULL’ when there is a value in Tolerance. Another check is to
make sure tolerance is not more than 5 inches or 120 MM.

Version 12.2

Bug fix in the code for the function module ZUS_SOP_303_GET_TECHTARGETS where unnecessary
loop is removed.
Version 12.3 CHG0090993 Updates basic data 2 but doesn't update MRP3 tab

Bug fix in the code for the function module US_SOP_303_CRITICAL_FIELD_CHG where Critical field
check is not correct. It is not reading the value from FIORI screen to check value in the values in the
database. It was checking basic data and MRP3 configuration values which is in correct

SELECT SINGLE a~atnam, b~atinn, b~atwrt, b~atflv
    FROM cabn AS a INNER JOIN ibinval_sel_f AS b
      ON a~atinn = b~atinn
    INTO @DATA(ls_self)
   WHERE b~instance = @lv_cuobf
     AND a~atnam = 'ORD_OSE_REVIEW_IND'.

*  IF sy-subrc EQ 0 AND ls_self-atwrt = 'Y'.
  IF ( lv_ui is NOT INITIAL and i_input-forceose ne 'false' ).
    critical = 'Y'.
  elseif ( lv_ui is INITIAL and sy-subrc EQ 0 AND ls_self-atwrt = 'Y' ).
    critical = 'Y'.
  ELSE.
    SELECT a~atnam, b~atinn, b~atwrt, b~atflv
      FROM cabn AS a INNER JOIN ibinval_sel_f AS b
` 58 of 97
        ON a~atinn = b~atinn
      INTO TABLE @DATA(lt_self1)
     WHERE b~instance = @lv_cuobf
       AND a~atnam IN @ran_atnam.

    loop at lt_self1 INTO DATA(ls_self1).
      APPEND INITIAL LINE TO lr_atinn ASSIGNING FIELD-SYMBOL(<lfs_atinn>).
      <lfs_atinn>-sign = 'I'.
      <lfs_atinn>-option = 'EQ'.
      <lfs_atinn>-low = ls_self1-atinn.
    endloop.

    DELETE ADJACENT DUPLICATES FROM lr_atinn COMPARING ALL FIELDS.

     select a~atwtb, b~atinn, b~atzhl, b~atwrt
       from
       cawnt as a INNER JOIN cawn as b
       on a~atinn = b~atinn and a~atzhl = b~atzhl
       INTO TABLE @data(lt_ctext)
       where a~spras eq 'E' and a~atinn in @lr_atinn.

    SELECT SINGLE cuobj
      FROM marc AS a INNER JOIN knmt AS b
        ON a~matnr = b~matnr
       AND a~werks = b~werks
      INTO @DATA(lv_cuobj)
     WHERE a~matnr = @matnr.

    SELECT a~atnam, b~atinn, b~atwrt, b~atflv
      FROM cabn AS a INNER JOIN ibinval_sel_f AS b
        ON a~atinn = b~atinn
      INTO TABLE @DATA(lt_self2)
     WHERE b~instance = @lv_cuobj
       AND a~atnam IN @ran_atnam.

    critical = 'N'.

*-- Begin of change - ED4K941335
    IF lv_ui is INITIAL.
    LOOP AT lt_self1 INTO ls_self1.
      READ TABLE lt_self2 INTO DATA(ls_self2) WITH KEY atnam = ls_self1-atnam.
      IF ls_self1-atwrt NE ls_self2-atwrt.
                critical = 'Y'.
                exit.
       endif.
     endloop.
    else.
    LOOP AT lt_self1 INTO ls_self1.

        CASE ls_self1-atnam.
          WHEN 'ORD_CUST_EDGE'.
            READ TABLE lt_ctext INTO DATA(ls_ctext) with KEY atwtb = I_INPUT-
edgecondition.
            IF sy-subrc = 0.
            IF ls_ctext-atwrt ne ls_self1-atwrt.
                critical = 'Y'.
            ENDIF.
            ENDIF.
          WHEN 'ORD_EXPOSURE_CODE'.
` 59 of 97
            READ TABLE lt_ctext INTO ls_ctext with KEY atwtb = I_INPUT-exposure.
            IF sy-subrc = 0.
            IF ls_ctext-atwrt ne ls_self1-atwrt.
                critical = 'Y'.
            ENDIF.
            ENDIF.
          WHEN 'ORD_STEEL_FORM'.
            READ TABLE lt_ctext INTO ls_ctext with KEY atwtb = I_INPUT-form.
            IF sy-subrc = 0.
            IF ls_ctext-atwrt ne ls_self1-atwrt.
                critical = 'Y'.
            ENDIF.
            ENDIF.
          WHEN OTHERS.
        ENDCASE.
    ENDLOOP.
    ENDIF.

LOOP AT lt_plpo INTO DATA(ls_plpo).
    READ TABLE t_plko_prodid INTO DATA(ls_prodid) WITH KEY plnnr = ls_plpo-vplnr.
    IF sy-subrc = 0.
      READ TABLE lt_plko INTO DATA(ls_plko) WITH KEY plnnr = ls_plpo-vplnr.
      e_tech_target  = ls_plko-ktext.
      lv_techtarget = ls_plpo-vplnr.
      IF i_coat_sub IS NOT INITIAL.
        READ TABLE t_plko_coatsub INTO DATA(ls_coatsub) WITH KEY plnnr = ls_plpo-
vplnr.
        IF sy-subrc = 0.
          READ TABLE lt_plko INTO ls_plko WITH KEY plnnr = ls_plpo-vplnr.
          e_tech_target  = ls_plko-ktext.
          lv_techtarget = ls_plpo-vplnr.
          EXIT.
        ELSE.
          CLEAR e_tech_target.
          CLEAR lv_techtarget.
        ENDIF.
      ENDIF.
    ENDIF.
  ENDLOOP.

Version 12.5

*-- LKP - 11/07/2019 - Begin

    DATA: l_mat(18) TYPE c,
          l_text    TYPE swwwihead-wi_text.

    CALL FUNCTION 'CONVERSION_EXIT_ALPHA_OUTPUT'
      EXPORTING
        input  = er_entity-matnr
      IMPORTING
        output = l_mat.

*-- WFStatus
    SELECT SINGLE current_phase INTO @DATA(l_current_phase)
` 60 of 97
      FROM z_c_matdash_open(  p_flag = 'M' )
     WHERE material = @l_mat.

    IF sy-subrc = 0.
      er_entity-wfstatus = l_current_phase.
    ENDIF.

    IF er_entity-wfstatus IS INITIAL.

      CONCATENATE '%' l_mat INTO l_text.

      SELECT wi_cd, wi_ct, wi_stat, wi_aed INTO @DATA(st_swwwihead) "#EC CI_NOFIELD
        FROM swwwihead UP TO 1 ROWS
       WHERE wi_stat  EQ 'COMPLETED'
         AND top_task IN ('WS90000014', 'WS90000018')
         AND wi_text  LIKE @l_text
        ORDER BY wi_cd DESCENDING, wi_ct DESCENDING.
      ENDSELECT.

      IF sy-subrc = 0.
        er_entity-wfstatus = st_swwwihead-wi_stat.
      ENDIF.

    ENDIF.

*-- WFCompdate
    IF st_swwwihead-wi_stat = 'COMPLETED'.
      CONCATENATE st_swwwihead-wi_aed+4(2) st_swwwihead-wi_aed+6(2) st_swwwihead-
wi_aed(4) INTO er_entity-wfcompdate SEPARATED BY '/'.
    ENDIF.
*-- LKP - 11/07/2019 - End

Version 12.7

Method: WORKITEMSCORPQTY_GET_ENTITYSET

 SELECT  a~matnr, a~satnr, b~mmstd, b~werks, c~kdmat, a~cuobf, c~kunnr INTO TABLE @D
ATA(lt_mat) FROM mara AS a
             LEFT OUTER JOIN marc AS b
            ON a~matnr = b~matnr
           LEFT OUTER JOIN knmt AS c
           ON b~matnr = c~matnr
          AND b~werks = c~werks
          AND c~kunnr LIKE '00008%'
        WHERE a~matnr = @i_matnr.

Method: WORKITEMSCIMSET_GET_ENTITYSET

    SELECT  a~matnr, a~satnr, c~kdmat, b~werks, a~cuobf, c~kunnr INTO TABLE @DATA(lt
_mat) FROM mara AS a
             LEFT OUTER JOIN marc AS b
            ON a~matnr = b~matnr
           LEFT OUTER JOIN knmt AS c
           ON b~matnr = c~matnr
          AND b~werks = c~werks

` 61 of 97
          AND c~kunnr LIKE '00008%'
        WHERE a~matnr = @es_cim-matnr. "ls_key_tab-value..
    DATA:ls_mat LIKE LINE OF lt_mat.

Function module : ZUS_SOP_303_INSP_PLAN

 ELSEIF ls_mapl-plnnr NE i_gradeid AND ls_mapl-loekz NE 'X'.

    group1 = ls_mapl-plnnr.

    ls_material_task_allocations-plant = ls_mapl-werks.
    ls_material_task_allocations-maintain_mode = 'D'.
    ls_material_task_allocations-material = i_matnr.
    APPEND ls_material_task_allocations TO material_task_allocations1.

    CALL FUNCTION 'BAPI_INSPECTIONPLAN_CHANGE'
      EXPORTING
        key_date                    = sy-datum
        group                       = group1
        groupcounter                = groupcounter
        material                    = material
        plant                       = ls_mapl-werks
      TABLES
        material_task_allocations   = material_task_allocations1
        material_task_allocations_x = material_task_allocations_x
        return                      = return.

Version 12.8

Include : LZUS_SOP303F04

***BOC BXMUKK 10/29/19 CHG0090997
  SPLIT task_list_group AT '_' INTO lv_satnr_temp lv_verid.
  SELECT alnal,alort FROM mkal WHERE matnr = @lv_satnr AND verid = @lv_verid
    ORDER BY PRIMARY KEY  INTO ( @gv_group_counter, @gv_alort ) UP TO 1 ROWS .
    EXIT.
  ENDSELECT.
***EOC CHG0090997

FORM crt_pro_ver  USING  ls_routes TYPE zus_303_routes.
  DATA it_mkal_i    TYPE STANDARD TABLE OF mkal.
  DATA ls_mkal_i    TYPE  mkal.
  DATA it_mkal_u    TYPE STANDARD TABLE OF mkal.
  DATA it_mkal_d    TYPE STANDARD TABLE OF mkal.
  DATA it_mkal_aend TYPE STANDARD TABLE OF mkal_aend.
  DATA lv_material TYPE string.

  DATA:lv_char(10),
       lv_verid    TYPE mkal-verid,
       lv_route    TYPE plnnr,      "added by mxnura
       zit_mkal    TYPE STANDARD TABLE OF mkal, "added by mxnura
       ls_mkal_u   TYPE  mkal,
       zit_routes  TYPE STANDARD TABLE OF zus_303_routes.
*data:lv_satnr type mara-satnr.

` 62 of 97
* SELECT SINGLE satnr FROM mara INTO lv_satnr WHERE matnr = ls_routes-matnr.
*  CONCATENATE lv_satnr '_' ls_routes-route INTO ls_routes-route.
**  task_list_group = ls_routes-route. "Route
*clear lv_satnr.
  SELECT SINGLE werks FROM knmt INTO ls_mkal_i-werks  WHERE matnr = ls_routes-matnr.

  " mxghin check if desired Plant is associated with material
  SELECT SINGLE aeszn INTO @DATA(lv_desired_plant) FROM mara WHERE matnr = @ls_routes-
matnr.
  IF lv_desired_plant IS NOT INITIAL.
    ls_mkal_i-werks = lv_desired_plant.
  ENDIF.
  " end mxghin

  SELECT SINGLE matnr, werks, verid FROM mkal INTO @DATA(ls_mkal) WHERE matnr = @ls_rout
es-matnr AND
                                                                             werks = @ls
_mkal_i-werks AND
                                                                               verid = @
lv_verid.

  SELECT SINGLE ktext FROM plko INTO @DATA(lv_ktext) WHERE plnnr = @ls_routes-route.
  IF ls_mkal IS INITIAL.
    ls_mkal_i-matnr = ls_routes-matnr.
    "1110
    SPLIT ls_routes-route AT '_' INTO lv_char lv_verid.
    ls_mkal_i-verid = lv_verid.
    ls_mkal_i-bdatu = '99991231'.
    ls_mkal_i-adatu = sy-datum.
    lv_material = ls_routes-matnr.
    SHIFT lv_material LEFT DELETING LEADING '0'.

    IF ( ls_mkal_i-werks = '1120' OR  ls_mkal_i-werks = '1130' OR  ls_mkal_i-werks = '11
80' OR  ls_mkal_i-werks = '2008' ).

      MODIFY t437p FROM @( VALUE #( plan_id = lv_material werks = ls_mkal_i-werks ) ).
      IF sy-subrc = 0 .
        ls_mkal_i-mdv02 = lv_material.
        COMMIT WORK.
      ELSE.
        ROLLBACK WORK.
      ENDIF.

    ENDIF.
    ls_mkal_i-stlan = '1'.
    ls_mkal_i-plnty = 'N'.
    ls_mkal_i-stlal = '01'.""Added BXMUKK 10/29/19 CHG0090997
    ls_mkal_i-alort = gv_alort.""Added BXMUKK 10/29/19 CHG0090997
    ls_mkal_i-plnnr = ls_routes-route.
    ls_mkal_i-alnal = gv_group_counter. "'01'.
    ls_mkal_i-text1 = lv_ktext.
    ls_mkal_i-prfg_f = '1'.
    ls_mkal_i-prfg_s = '1'.
    ls_mkal_i-prdat = sy-datum.

    APPEND ls_mkal_i TO it_mkal_i.

` 63 of 97
Populating the values in the Advanced Planning Tab from BAPI_MATERIAL_SAVEDATA

****BOC BXMUKK CHG0090997 11/18/2019
              IF plantdata-plan_strgp = 'ZC'.
                plantdata-adv_plng_ind = abap_true.
                plantdatax-adv_plng_ind = abap_true.
                plantdata-rrp_planning_type = '4'.
                plantdatax-rrp_planning_type = abap_true.
              ELSE.""if they transfer from ZC to another strategy group, clear the 
values
                plantdata-adv_plng_ind = abap_false.
                plantdatax-adv_plng_ind = abap_true.
                plantdata-rrp_planning_type = space.
                plantdatax-rrp_planning_type = abap_true.
              ENDIF.
****EOC CHG0090997
*

Version 12.9

Class Method ZCL_ZUS_SOP303_MATMAST_DPC_EXT~ WIDTHTOLSET_GET_ENTITYSET

************ BOC CHG0083306 Commented By Neha On 24.01.2020 Changes Start  **********

*    DATA:lv_atinn TYPE cawn-atinn.
*    CALL FUNCTION 'CONVERSION_EXIT_ATINN_INPUT'
*      EXPORTING
*        input  = 'ORD_WIDTH_TOL_PO_TEXT'
*      IMPORTING
*        output = lv_atinn.
*
*    SELECT atinn, atwtb FROM cawnt INTO TABLE @DATA(lt_cawnt) WHERE atinn = @lv_atinn 
AND atwtb IN @lr_widthtol .
*    LOOP AT lt_cawnt INTO DATA(ls_cawnt).
*      es_entityset-ord_width_tol_po_text = ls_cawnt-atwtb.
*      APPEND es_entityset TO et_entityset.
*    ENDLOOP.
************ EOC CHG0083306 Commented By Neha On 24.01.2020 Changes Ends  **********

************ BOC CHG0083306 Added By Neha On 24.01.2020 Changes Start  **********
*
    CONSTANTS: lc_var_table          TYPE tablstruct-var_tab  VALUE 'VT_PROD_WIDTH_TOL',
               lc_que_prod_id        TYPE vtentries-vtcharact VALUE 'ORD_QUE_PRODUCT_ID',
               lc_ord_width_tol_text TYPE vtentries-vtcharact VALUE 'ORD_WIDTH_TOL_PO_TEXT
'.

    DATA: lt_tab_entries TYPE TABLE OF vtentries.

    CALL FUNCTION 'CARD_TABLE_READ_ENTRIES'
      EXPORTING
        var_table       = lc_var_table
      TABLES
        var_tab_entries = lt_tab_entries
      EXCEPTIONS
        error           = 1
        OTHERS          = 2.
    IF sy-subrc EQ 0.
` 64 of 97
      SORT lt_tab_entries BY vtcharact vtvalue.
      DATA(lt_que_product_id) = lt_tab_entries.

      DELETE lt_que_product_id WHERE vtcharact NE lc_que_prod_id OR
                                     vtvalue   NE iv_search_string.
      DELETE lt_tab_entries WHERE vtcharact NE lc_ord_width_tol_text .

      LOOP AT lt_que_product_id INTO DATA(ls_que_product_id).
        ASSIGN lt_tab_entries[ vtlinnoint = ls_que_product_id-vtlinnoint ] TO FIELD-
SYMBOL(<fs_tab_entry>).
        IF sy-subrc EQ 0.
          es_entityset-ord_width_tol_po_text = <fs_tab_entry>-vtvalue_long.
          APPEND es_entityset TO et_entityset.
          CLEAR: es_entityset.
        ENDIF.
      ENDLOOP.
* Implement suitable error handling here
    ENDIF.

************ EOC CHG0083306 Added By Neha On 24.01.2020 Changes Ends  **********

In the above change we are reading value from VT table ‘VT_PROD_WIDTH_TOL’ using FM
‘CARD_TABLE_READ_ENTRIES’ . Then filtering values of width tol po text based on Que
Product Id.

Class Method ZCL_ZUS_SOP303_MATMAST_DPC_EXT~ GUAGETOLSET_GET_ENTITYSET

********** BOC CHG0083306 Commented By Neha On 27.01.2020 changs start ***
*    DATA:lv_atinn TYPE cawn-atinn.
*    CALL FUNCTION 'CONVERSION_EXIT_ATINN_INPUT'
*      EXPORTING
*        input  = 'ORD_THICKNESS_TOL_PO_TEXT'
*      IMPORTING
*        output = lv_atinn.
*
*    SELECT atinn, atwtb FROM cawnt INTO TABLE @DATA(lt_cawnt) WHERE atinn = @lv_atinn 
AND atwtb IN @lr_guagetol .
*    LOOP AT lt_cawnt INTO DATA(ls_cawnt).
*      es_entityset-ord_thickness_tol_po_text = ls_cawnt-atwtb.
*      APPEND es_entityset TO et_entityset.
*    ENDLOOP.
********** EOC CHG0083306 Commented By Neha On 27.01.2020 changs ends ***

************ BOC CHG0083306 Added By Neha On 24.01.2020 Changes Start  **********

    CONSTANTS: lc_var_table              TYPE tablstruct-var_tab  VALUE 'VT_PROD_THICK_TOL
',
               lc_que_prod_id            TYPE vtentries-vtcharact VALUE 'ORD_QUE_PRODUCT_I
D',
               lc_ord_thickness_tol_text TYPE vtentries-vtcharact VALUE 'ORD_THICKNESS_TOL
_PO_TEXT'.

    DATA: lt_tab_entries TYPE TABLE OF vtentries.

    CALL FUNCTION 'CARD_TABLE_READ_ENTRIES'
      EXPORTING
        var_table       = lc_var_table
` 65 of 97
      TABLES
        var_tab_entries = lt_tab_entries
      EXCEPTIONS
        error           = 1
        OTHERS          = 2.
    IF sy-subrc EQ 0.
      SORT lt_tab_entries BY vtcharact vtvalue.
      DATA(lt_que_product_id) = lt_tab_entries.

      DELETE lt_que_product_id WHERE vtcharact NE lc_que_prod_id OR
                                     vtvalue   NE iv_search_string.
      DELETE lt_tab_entries WHERE vtcharact NE lc_ord_thickness_tol_text .

      LOOP AT lt_que_product_id INTO DATA(ls_que_product_id).
        ASSIGN lt_tab_entries[ vtlinnoint = ls_que_product_id-vtlinnoint ] TO FIELD-
SYMBOL(<fs_tab_entry>).
        IF sy-subrc EQ 0.
          es_entityset-ord_thickness_tol_po_text = <fs_tab_entry>-vtvalue_long.
          APPEND es_entityset TO et_entityset.
          CLEAR: es_entityset.
        ENDIF.
      ENDLOOP.
* Implement suitable error handling here
    ENDIF.

************ EOC CHG0083306 Added By Neha On 24.01.2020 Changes Ends  **********

In the above change we are reading values from VT table ‘VT_PROD_THICK_TOL’ using FM
‘CARD_TABLE_READ_ENTRIES’ . Then filtering values of guage tol po text based on Que
Product Id.

Include LZUS_SOP303F02

  IF i_input-widthtol IS NOT INITIAL.
*********** BOC CHG0083306 Commented By I509127 Changes Start
*        READ TABLE lt_cawn INTO ls_cawn WITH KEY atwtb = i_input-widthtol  atinn = lv
_atinn..
*        ls_input-mwert = ls_cawn-atwrt.
*********** EOC CHG0083306 Commented By I509127 Changes Ends
*********** BOC CHG0083306 Added By I509127 Changes Start
    ls_input-mwert = i_input-widthtol.
*********** EOC CHG0083306 Added By I509127 Changes Ends
    IF ls_input-mwert = '--'.
      ls_input-mwert = ''.
    ENDIF.
    CLEAR: lv_atinn, ls_cawn, ls_e1cuval.
    APPEND ls_input TO lt_input.
  ENDIF.

Above changes are done to pass ORD_WIDTH_TOL_PO_TEXT value selected on panel to material.
No need to check for description in table CAWNT as there will be no value .

  IF i_input-gaugetol IS NOT INITIAL.
********* BOC CHG0083306 Commented By I509127 On 29.01.2020 ************
*        READ TABLE lt_cawn INTO ls_cawn WITH KEY atwtb = i_input-gaugetol  atinn = lv
_atinn..
` 66 of 97
*        ls_input-mwert = ls_cawn-atwrt.
********* EOC CHG0083306 Commented By I509127 On 29.01.2020 ************
********* BOC CHG0083306 Added By I509127 On 29.01.2020 ************
    ls_input-mwert = i_input-gaugetol.
********* EOC CHG0083306 Added By I509127 On 29.01.2020 ************
    CLEAR: lv_atinn, ls_cawn, ls_e1cuval.
    APPEND ls_input TO lt_input.
  ENDIF.

Above changes are done to pass ORD_THICKNESS_TOL_PO_TEXT value selected on panel to


material. No need to check for description in table CAWNT as there will be no value .

Class ZCL_ZUS_SOP303_MATMAST_DPC_EXT~MATNRCORPQTYSET_GET_ENTITY

********* BOC CHG0083306 Added By I509127 On 29.01.2020
      READ TABLE lt_e1cuval INTO ls_e1cuval WITH KEY charc = 'ORD_QUE_PRODUCT_ID'.
      IF sy-subrc EQ 0.
        er_entity-queprodidcode = ls_e1cuval-value.
      ENDIF.
********* EOC CHG0083306 Added By I509127 On 29.01.2020

Gateway Project : ZUS_SOP303_MATMASTER

EntityType – MatnrCorpQty

Addition of property ‘QueProdIdCode’ for sending ORD_QUE_PRODUCT_ID code to panel.

UI Changes – BSP Application ‘ZSOP_MD_CORPQA’

Material.controller.js file :-

onInit:-

` 67 of 97
updateRelevantControls :-

Change of static binding with bindings as mentioned in above screen shot for passing Que Product Id from panel to
backend entity set.

MaterialInfo.fragment.xml

Please find below attached latest zip file for bsp application.

` 68 of 97
Git URL :-

https://git.us3.hana.ondemand.com/heddd3264/zmtfmaterialpanel

Class Method ZCL_ZUS_SOP303_MATMAST_DPC_EXT~ BOOKSET_GET_ENTITYSET

We need to pick inspection plans those are not deleted. Changed where clause while fetching values from
PLKO table for books drop down on panel to remove deleted records as per below screen shot.

********** BOC CHG0083306 Added By I509127 Changes Start On 07.02.2020
********* Commented By I509127 On 07.02.20202
*    SELECT ktext, plnnr FROM plko INTO TABLE @DATA(lt_plko) WHERE verwe = 'ZBK' AND ( 
statu = 'Z02' or statu = 'Z01' ). "#EC CI_NOFIELD
********* Added By I509127 On 07.02.20202
    SELECT ktext, plnnr FROM plko INTO TABLE @DATA(lt_plko) WHERE verwe = 'ZBK' AND statu 
= 'Z02' and delkz = '' and loekz = ''. "#EC CI_NOFIELD

********** EOC CHG0083306 Added By I509127 Changes Start

Class Method ZCL_ZUS_SOP303_MATMAST_DPC_EXT~ GRADESET_GET_ENTITYSET

We need to pick inspection plans those are not deleted. Changed where clause while fetching values from
PLKO table for grade drop down on panel to remove deleted records as per below screen shot.

      IF t_plko IS NOT INITIAL.
*********** BOC CHG0083306 Added By I509127 On 07.02.2020 Changes Start
********** Commented By I509127 On 07.02.2020
*        SELECT ktext, plnnr FROM plko INTO TABLE @DATA(lt_plko) FOR ALL ENTRIES IN @t
_plko
*                       WHERE plnnr = @t_plko-plnnr AND
*                             plnal = @t_plko-plnal AND
*                             plnty = @t_plko-plnty AND
*                            verwe = 'ZCT' AND ( statu = 'Z02' OR statu = 'Z01' ).
******** Added By I509127 On 07.02.2020
        SELECT ktext, plnnr FROM plko INTO TABLE @DATA(lt_plko) FOR ALL ENTRIES IN @t_plko
                       WHERE plnnr = @t_plko-plnnr AND
` 69 of 97
                             plnal = @t_plko-plnal AND
                             plnty = @t_plko-plnty AND
                            verwe = 'ZCT' AND statu = 'Z02'
                            AND delkz = '' AND loekz = ''.
*********** EOC CHG0083306 Added By I509127 On 07.02.2020 Changes end

Class Method ZCL_ZUS_SOP303_MATMAST_DPC_EXT~ SPECSET_GET_ENTITYSET

We need to pick inspection plans those are not deleted. Changed where clause while fetching values from
PLKO table for spec drop down on panel to remove deleted records as per below screen shot.

********** BOC CHG0083306 Added By I509127 Changes Start On 07.02.2020
********* Commented By I509127 On 07.02.20202
*      SELECT ktext, plnnr FROM plko INTO TABLE @DATA(lt_plko) FOR ALL ENTRIES IN @t_pl
ko
*                     WHERE plnnr = @t_plko-plnnr AND
*                           plnal = @t_plko-plnal AND
*                           plnty = @t_plko-plnty AND
*                          verwe = 'ZSP' AND ( statu = 'Z02' OR statu = 'Z01' ).
************ Added By I50127 On 07.02.2020
      SELECT ktext, plnnr FROM plko INTO TABLE @DATA(lt_plko) FOR ALL ENTRIES IN @t_plko
                     WHERE plnnr = @t_plko-plnnr AND
                           plnal = @t_plko-plnal AND
                           plnty = @t_plko-plnty AND
                          verwe = 'ZSP' AND statu = 'Z02' AND
                          delkz = ''  AND loekz = ''.

********** EOC CHG0083306 Added By I509127 Changes Ends On 07.02.2020

` 70 of 97
Version 13.0

FUNCTION zus_sop_303_corp_qlty_update.

*****
  "-->>>>--LKP-20.02.2020 - CHG0084507 - MTF change for MES
  PERFORM aim_comments USING i_input_corp_qlty.
  "--<<<<<--LKP-20.02.2020 - CHG0084507

LZUS_SOP303F02

FORM aim_comments USING i_input TYPE zcl_zus_sop303_matmast_mpc=>ts_matnrcorpqty.

  DATA: ls_aim_text TYPE zus_303_aim_text.

  ls_aim_text-mandt = sy-mandt.
  ls_aim_text-matnr = i_input-matnr.

*--->AIM Tolerance Comments
  ls_aim_text-zzid_text =  |ZATC|.
  ls_aim_text-zzaim_text = i_input-aimtolercomments.
  MODIFY zus_303_aim_text FROM ls_aim_text.

*--->AIM Other Prop Comments
  ls_aim_text-zzid_text =  |ZAOP|.
  ls_aim_text-zzaim_text = i_input-aimothpropcomments.
  MODIFY zus_303_aim_text FROM ls_aim_text.

*--->AIM Chem/Mech Prop Comments
  ls_aim_text-zzid_text =  |ZACM|.
  ls_aim_text-zzaim_text = i_input-aimchmmchpropcomments.
  MODIFY zus_303_aim_text FROM ls_aim_text.

  DELETE FROM zus_303_aim_text WHERE matnr = i_input-matnr
                                 AND zzaim_text = ''.

ENDFORM.

` 71 of 97
Method: MATNRCORPQTYSET_GET_ENTITY

    "-->>>>--LKP-20.02.2020 - CHG0084507 - MTF change for MES

    "-- End Use Category
    READ TABLE lt_e1cuval INTO ls_e1cuval WITH KEY charc = 'ORD_ENDUSE_CAT'.
    CALL FUNCTION 'CONVERSION_EXIT_ATINN_INPUT'
      EXPORTING
        input  = 'ORD_ENDUSE_CAT'
      IMPORTING
        output = lv_atinn.
    READ TABLE lt_cawn INTO DATA(ls_cawn_2) WITH KEY atwrt = ls_e1cuval-value
                                                     atinn = lv_atinn.
    er_entity-endusecat = ls_cawn_2-atwtb.
    CLEAR:ls_cawn_2, ls_e1cuval, lv_atinn.

    "-- Aspect Code
    READ TABLE lt_e1cuval INTO ls_e1cuval WITH KEY charc = 'ORD_ASPECT_CODE'.
    CALL FUNCTION 'CONVERSION_EXIT_ATINN_INPUT'
      EXPORTING
        input  = 'ORD_ASPECT_CODE'
      IMPORTING
        output = lv_atinn.
    READ TABLE lt_cawn INTO ls_cawn_2 WITH KEY atwrt = ls_e1cuval-value
                                               atinn = lv_atinn.
    er_entity-aspectcode = ls_cawn_2-atwtb.
    CLEAR:ls_cawn_2, ls_e1cuval, lv_atinn.

    "-- Additional test Reporting
***    READ TABLE lt_e1cuval INTO ls_e1cuval WITH KEY charc = 'ORD_QM_ADDL_TEST_REPORTI
NG'.
    LOOP AT lt_e1cuval INTO ls_e1cuval WHERE charc = 'ORD_QM_ADDL_TEST_REPORTING'.
      CALL FUNCTION 'CONVERSION_EXIT_ATINN_INPUT'
        EXPORTING
          input  = 'ORD_QM_ADDL_TEST_REPORTING'
        IMPORTING
          output = lv_atinn.
      READ TABLE lt_cawn INTO ls_cawn_2 WITH KEY atwrt = ls_e1cuval-value
                                                 atinn = lv_atinn.
***    er_entity-addtestreport = ls_cawn_2-atwtb.

      IF er_entity-addtestreport IS INITIAL.
        er_entity-addtestreport = ls_cawn_2-atwtb.
      ELSE.
        er_entity-addtestreport = |{ er_entity-addtestreport };{ ls_cawn_2-atwtb }|.
      ENDIF.
    ENDLOOP.

    CLEAR:ls_cawn_2, ls_e1cuval, lv_atinn.

    "-- Additional YTE Reporting
    READ TABLE lt_e1cuval INTO ls_e1cuval WITH KEY charc = 'ORD_QM_ADDL_YTE_REPORTING'.
    CALL FUNCTION 'CONVERSION_EXIT_ATINN_INPUT'
      EXPORTING
        input  = 'ORD_QM_ADDL_YTE_REPORTING'
      IMPORTING
        output = lv_atinn.

` 72 of 97
    READ TABLE lt_cawn INTO ls_cawn_2 WITH KEY atwrt = ls_e1cuval-value
                                               atinn = lv_atinn.
    er_entity-addytereport = ls_cawn_2-atwtb.
    CLEAR:ls_cawn_2, ls_e1cuval, lv_atinn.

    "-- Other test Reporting
***    READ TABLE lt_e1cuval INTO ls_e1cuval WITH KEY charc = 'ORD_QM_OTHR_TEST_REPORTI
NG'.
    LOOP AT lt_e1cuval INTO ls_e1cuval WHERE charc = 'ORD_QM_OTHR_TEST_REPORTING'.
      CALL FUNCTION 'CONVERSION_EXIT_ATINN_INPUT'
        EXPORTING
          input  = 'ORD_QM_OTHR_TEST_REPORTING'
        IMPORTING
          output = lv_atinn.
      READ TABLE lt_cawn INTO ls_cawn_2 WITH KEY atwrt = ls_e1cuval-value
                                                 atinn = lv_atinn.
***    er_entity-othertestreport = ls_cawn_2-atwtb.

      IF er_entity-othertestreport IS INITIAL.
        er_entity-othertestreport = ls_cawn_2-atwtb.
      ELSE.
        er_entity-othertestreport = |{ er_entity-othertestreport };{ ls_cawn_2-atwtb }|.
      ENDIF.
    ENDLOOP.

    CLEAR:ls_cawn_2, ls_e1cuval, lv_atinn.

    "--<<<<--LKP-20.02.2020 - CHG0084507

    "-->>>>--LKP-20.02.2020 - CHG0084507 - MTF change for MES

    SELECT zzid_text,
           zzaim_text
          INTO TABLE @DATA(lt_aim_text)
          FROM zus_303_aim_text
          WHERE matnr = @ls_mara-matnr.

    "-- AIM Tolerance Comments
    er_entity-aimtolercomments = VALUE #( lt_aim_text[ zzid_text = |ZATC| ]-zzaim_text OPT
IONAL ).

    "-- AIM Other Prop Comments
    er_entity-aimothpropcomments = VALUE #( lt_aim_text[ zzid_text = |ZAOP| ]-zzaim_text O
PTIONAL ).

    "-- AIM Chem/Mech Prop Comments
    er_entity-aimchmmchpropcomments = VALUE #( lt_aim_text[ zzid_text = |ZACM| ]-
zzaim_text OPTIONAL ).

    "--<<<<--LKP-20.02.2020 - CHG0084507

App Master Data Quality (OSE)

FRONT-END
View: MasterData.fragment
<Select id="sAspectCode"
forceSelection="false"
enabled="{coreModel>/editable}"
` 73 of 97
selectedKey="{AspectCode}" items="{ path: 'AspectCodeModel>/', length:
10000}">
<core:Item key="{AspectCodeModel>ORD_ASPECT_CODE}"
text="{AspectCodeModel>ORD_ASPECT_CODE}"/>
</Select>

Controller: Material
onEndUseCatChange: function(oEvent) {
var oSource = oEvent.getSource();
var sKey = oSource.getSelectedItem().getKey();
var oModel = this.getOwnerComponent().getModel();

oModel.read("/EndUseCatSet", {
success: function(oResultData, oResponse) {
var oResult = oResultData.results;
var oEndUserCat = $.grep(oResult, function (e) { return e.ORD_ENDUSE_CAT ===
sKey })[0];

var sVtlineno = oEndUserCat.VTLINENO;


var oFilter = new Filter("VTLINENO", FilterOperator.EQ, sVtlineno);
this._filterAspectCode(oFilter)

}.bind(this)
});
},

_filterAspectCode: function(oFilter) {
var aFilters = [ oFilter ];
var oModel = this.getOwnerComponent().getModel();

oModel.read("/AspectCodeSet", {
filters: aFilters,
success: function(oResultData, oResponse) {
var aResults = oResultData.results;
var oResult = aResults[0];
var oJSONModel = new sap.ui.model.json.JSONModel();
oJSONModel.setSizeLimit(aResults.length);
oJSONModel.setData(aResults);

this.getView().setModel(oJSONModel, "AspectCodeModel");

if (oResult) {
this.byId("sAspectCode").setSelectedKey(oResult.ORD_ASPECT_CODE);
}
}.bind(this)
});
}

BACK-END
Classe: ZCL_ZUS_SOP303_MATMAST_DPC_EXT
Método: ASPECTCODESET_GET_ENTITYSET
DATA: lt_filter_select_options TYPE /iwbep/t_mgw_select_option,
      lo_filter                TYPE  REF TO /iwbep/if_mgw_req_filter.

` 74 of 97
DATA lv_vtlineno TYPE char5.

lo_filter = io_tech_request_context->get_filter( ).
lt_filter_select_options = lo_filter->get_filter_select_options( ).

LOOP AT lt_filter_select_options INTO DATA(ls_filter).
CASE ls_filter-property.
   WHEN 'VTLINENO'.
     lv_vtlineno = VALUE #( ls_filter-select_options[ 1 ]-low OPTIONAL ).
  ENDCASE.
ENDLOOP.

IF NOT lv_vtlineno IS INITIAL.
  DELETE lt_var_table WHERE vtlinnoint NE lv_vtlineno.

Classe: ZCL_ZUS_SOP303_MATMAST_DPC_EXT
Método: ENDUSECATSET_GET_ENTITYSET
es_entityset-vtlineno = ls_var_table-vtlineno.

Version 13.1

Include LZUS_SOP303TOP
DATA gt_e1cuval TYPE STANDARD TABLE OF e1cuval.
Include LZUS_SOP303F02
gt_e1cuval[] = t_e1cuval[].
Include LZUS_SOP303F01
DATA instance  TYPE cuib_cuobj.
        DATA:lv_atinn TYPE cawn-atinn.
        DATA gv_plant  TYPE marc-werks.
        DATA et_return TYPE bapiret2_t.
        DATA t_e1cucfg TYPE STANDARD TABLE OF e1cucfg.
        DATA t_e1cuins TYPE STANDARD TABLE OF e1cuins.
        DATA t_e1cuval TYPE STANDARD TABLE OF e1cuval.
        DATA ls_e1cuval TYPE  e1cuval.
        DATA: t_e1cucom  TYPE STANDARD TABLE OF e1cucom,
              it_e1cucfg TYPE STANDARD TABLE OF e1cucfg,
              it_e1cuins TYPE STANDARD TABLE OF e1cuins,
              it_e1cuval TYPE STANDARD TABLE OF e1cuval,
              ti_e1cuval TYPE STANDARD TABLE OF e1cuval,
              it_e1cucom TYPE STANDARD TABLE OF e1cucom,
              lt_e1cucom_w TYPE STANDARD TABLE OF e1cucom WITH HEADER LINE,
              lt_e1cucfg_w TYPE STANDARD TABLE OF e1cucfg WITH HEADER LINE,
              lt_e1cuins_w TYPE STANDARD TABLE OF e1cuins WITH HEADER LINE,
              lt_e1cuval_w TYPE STANDARD TABLE OF  e1cuval WITH HEADER LINE.

        REFRESH: it_e1cucfg, it_e1cuins, it_e1cuval, it_e1cucom.

        gv_matnr = i_input-matnr.
        gv_conf_matl = lv_stdpd-stdpd.
        gv_plant = lv_stdpd-werks.

        SELECT SINGLE cuobj INTO @instance FROM marc WHERE matnr = @gv_matnr.

        CALL FUNCTION 'CUXM_GET_CONFIGURATION'
          EXPORTING
            instance                     = instance
` 75 of 97
            werks                        = gv_plant
          IMPORTING
            et_return                    = et_return
          TABLES
            t_e1cucfg                    = it_e1cucfg
            t_e1cuins                    = it_e1cuins
            t_e1cuval                    = it_e1cuval
            t_e1cucom                    = it_e1cucom
          EXCEPTIONS
            instance_not_found           = 1
            internal_error               = 2
            instance_is_a_classification = 3
            OTHERS                       = 4.

        ti_e1cuval[] = lt_e1cuval[].

        CALL FUNCTION 'ZUS_SOP_303_CRITICAL_FIELD'
          EXPORTING
            i_matnr      = gv_matnr
          IMPORTING
            critical     = lv_critical
          TABLES
            it_e1cuval_1 = it_e1cuval
            it_e1cuval_2 = ti_e1cuval
            it_e1cuval_3 = gt_e1cuval.

        lt_e1cucfg_w[] = lt_e1cucfg[].
        lt_e1cuins_w[] = lt_e1cuins[].
        lt_e1cuval_w[] = lt_e1cuval[].
        lt_e1cucom_w[] = lt_e1cucom[].

        CALL FUNCTION 'MATERIAL_SAVE_CONFIGURATION'
          EXPORTING
            material        = gv_matnr
            plant           = gv_plant
            conf_matl       = gv_conf_matl
            conf_matl_plant = gv_conf_matl
          IMPORTING
            return          = x_return
          TABLES
            e1cucfg         = lt_e1cucfg
            e1cuins         = lt_e1cuins
            e1cuval         = lt_e1cuval
            e1cucom         = lt_e1cucom
            e1cucfg_w       = lt_e1cucfg_w
            e1cuins_w       = lt_e1cuins_w
            e1cuval_w       = lt_e1cuval_w
            e1cucom_w       = lt_e1cucom_w
            returnmessages  = gt_return.

* Begin of GANEAG
        lv_partnumber = i_input-partnumber.

        PERFORM change_sales_order_chg USING lv_partnumber i_input-matnr.
* End of GANEAG

        IF lv_critical EQ abap_true.
          pe_parametro = 'ZUSSOP303REVLEVEL'.
          pe_empresa = '*'.
` 76 of 97
          pe_centro  = ''.

          CALL FUNCTION 'ZBC_GET_PARAMETER'
            EXPORTING
              pe_parametro = pe_parametro
              pe_empresa   = pe_empresa
              pe_centro    = pe_centro
            CHANGING
              it_dados     = lt_revlevel
              st_dados     = ls_revlevel.

          SORT lt_revlevel BY aennr DESCENDING.
          READ TABLE lt_revlevel INTO ls_revlevel INDEX 1.

          lv_doknr = ls_revlevel-aennr.

          " Get current material version
          CALL FUNCTION 'REVISION_LEVEL_SELECT'
            EXPORTING
              aennr                   = ls_revlevel-aennr
              aeobj                   = ls_revlevel-aeobj
              doknr                   = lv_doknr
              matnr                   = gv_matnr
            IMPORTING
              arevlv                  = lv_arevlv
            EXCEPTIONS
              date_not_found          = 1
              ecn_not_found           = 2
              ecn_no_revision         = 3
              input_incomplete        = 4
              input_inconsistent      = 5
              revision_not_found      = 6
              version_not_found       = 7
              others                  = 8.

          lv_version = lv_arevlv.
          ADD 1 TO lv_version.
          lv_arevlv = lv_version.
          UNPACK lv_arevlv TO lv_arevlv.

          " Get all available versions
          SELECT * FROM tcc09
            INTO TABLE lt_tcc09
           WHERE aetyp EQ '41'. " Material

          " Checks if the next version is registered
          READ TABLE lt_tcc09 WITH KEY revlv = lv_arevlv TRANSPORTING NO FIELDS.
          IF sy-subrc EQ 0.
            CALL FUNCTION 'REVISION_LEVEL_INSERT'
              EXPORTING
                aennr                               = ls_revlevel-aennr
                aeobj                               = ls_revlevel-aeobj
                doknr                               = lv_doknr
                matnr                               = gv_matnr
                revlv                               = lv_arevlv
                flg_api                             = 'X'
              IMPORTING
                aaennr                              = lv_aaennr
                adatuv                              = lv_adatuv
` 77 of 97
                arevlv                              = lv_arevlv
              EXCEPTIONS
                authority_check                     = 1
                document_for_ecn_impossible         = 2
                input_incomplete                    = 3
                material_for_ecn_impossible         = 4
                new_revision_impossible             = 5
                no_suggestion                       = 6
                revision_exists                     = 7
                revision_for_ecn_exists             = 8
                revision_not_defined                = 9
                version_with_revision               = 10
                revision_to_small                   = 11
                revision_not_active_in_client       = 12
                revision_not_max                    = 13
                others                              = 14.

            IF sy-subrc EQ 0.
              CALL FUNCTION 'BAPI_TRANSACTION_COMMIT'.
            ELSE.
              CALL FUNCTION 'BAPI_TRANSACTION_ROLLBACK'.
            ENDIF.
          ENDIF.
        ENDIF.

Linha 1898
        CALL FUNCTION 'ZUS_SOP_303_CRITICAL_FIELD'
          EXPORTING
            i_matnr     = gv_matnr
          IMPORTING
            critical    = lv_critical
          TABLES
            it_e1cuval_1 = ti_e1cuval
            it_e1cuval_2 = ti_e1cuval
            it_e1cuval_3 = gt_e1cuval.

        IF lv_critical EQ abap_true.
          pe_parametro = 'ZUSSOP303REVLEVEL'.
          pe_empresa = '*'.
          pe_centro  = ''.

          CALL FUNCTION 'ZBC_GET_PARAMETER'
            EXPORTING
              pe_parametro = pe_parametro
              pe_empresa   = pe_empresa
              pe_centro    = pe_centro
            CHANGING
              it_dados     = lt_revlevel
              st_dados     = ls_revlevel.

          SORT lt_revlevel BY aennr DESCENDING.
          READ TABLE lt_revlevel INTO ls_revlevel INDEX 1.

          lv_doknr = ls_revlevel-aennr.

          " Get current material version
          CALL FUNCTION 'REVISION_LEVEL_SELECT'
            EXPORTING
              aennr                   = ls_revlevel-aennr
` 78 of 97
              aeobj                   = ls_revlevel-aeobj
              doknr                   = lv_doknr
              matnr                   = gv_matnr
            IMPORTING
              arevlv                  = lv_arevlv
            EXCEPTIONS
              date_not_found          = 1
              ecn_not_found           = 2
              ecn_no_revision         = 3
              input_incomplete        = 4
              input_inconsistent      = 5
              revision_not_found      = 6
              version_not_found       = 7
              others                  = 8.

          lv_version = lv_arevlv.
          ADD 1 TO lv_version.
          lv_arevlv = lv_version.
          UNPACK lv_arevlv TO lv_arevlv.

          " Get all available versions
          SELECT * FROM tcc09
            INTO TABLE lt_tcc09
           WHERE aetyp EQ '41'. " Material

          " Checks if the next version is registered
          READ TABLE lt_tcc09 WITH KEY revlv = lv_arevlv TRANSPORTING NO FIELDS.
          IF sy-subrc EQ 0.
            CALL FUNCTION 'REVISION_LEVEL_INSERT'
              EXPORTING
                aennr                               = ls_revlevel-aennr
                aeobj                               = ls_revlevel-aeobj
                doknr                               = lv_doknr
                matnr                               = gv_matnr
                revlv                               = lv_arevlv
                flg_api                             = 'X'
              IMPORTING
                aaennr                              = lv_aaennr
                adatuv                              = lv_adatuv
                arevlv                              = lv_arevlv
              EXCEPTIONS
                authority_check                     = 1
                document_for_ecn_impossible         = 2
                input_incomplete                    = 3
                material_for_ecn_impossible         = 4
                new_revision_impossible             = 5
                no_suggestion                       = 6
                revision_exists                     = 7
                revision_for_ecn_exists             = 8
                revision_not_defined                = 9
                version_with_revision               = 10
                revision_to_small                   = 11
                revision_not_active_in_client       = 12
                revision_not_max                    = 13
                others                              = 14.

            IF sy-subrc EQ 0.
              CALL FUNCTION 'BAPI_TRANSACTION_COMMIT'.
            ELSE.
` 79 of 97
              CALL FUNCTION 'BAPI_TRANSACTION_ROLLBACK'.
            ENDIF.
          ENDIF.
        ENDIF.
      ENDIF.
Criada a Função ZUS_SOP_303_CRITICAL_FIELD
FUNCTION ZUS_SOP_303_CRITICAL_FIELD.
*"----------------------------------------------------------------------
*"*"Local Interface:
*"  IMPORTING
*"     REFERENCE(I_MATNR) TYPE  MATNR
*"  EXPORTING
*"     REFERENCE(CRITICAL) TYPE  CHAR1
*"  TABLES
*"      IT_E1CUVAL_1 STRUCTURE  E1CUVAL
*"      IT_E1CUVAL_2 STRUCTURE  E1CUVAL
*"      IT_E1CUVAL_3 STRUCTURE  E1CUVAL
*"----------------------------------------------------------------------

  DATA: lt_critical  TYPE STANDARD TABLE OF zussop303critical,
        ls_critical  TYPE zussop303critical,
        pe_parametro TYPE zbcpar015-object,
        pe_empresa   TYPE bukrs,
        pe_centro    TYPE werks_d,
        ls_e1cuval_1 TYPE e1cuval,
        ls_e1cuval_2 TYPE e1cuval,
        ls_e1cuval_3 TYPE e1cuval,
        lr_charc     TYPE RANGE OF atnam.
*        lv_atinn       TYPE cawn-atinn.

  critical = abap_false.

  pe_parametro = 'ZUSSOP303CRITICAL'.
  pe_empresa = '*'.
  pe_centro = ''.

  " Get critical fields
  CALL FUNCTION 'ZBC_GET_PARAMETER'
    EXPORTING
      pe_parametro = pe_parametro
      pe_empresa   = pe_empresa
      pe_centro    = pe_centro
    CHANGING
      it_dados     = lt_critical
      st_dados     = ls_critical.

  " Critical fields Range
  lr_charc = VALUE #( FOR ls_line IN lt_critical ( sign = 'I' option = 'EQ' low = ls_line-
atnam ) ).

  DELETE it_e1cuval_1 WHERE charc NOT IN lr_charc.
  DELETE it_e1cuval_2 WHERE charc NOT IN lr_charc.
  DELETE it_e1cuval_3 WHERE charc NOT IN lr_charc.

  LOOP AT it_e1cuval_1 INTO ls_e1cuval_1.
    IF ls_e1cuval_1-charc EQ 'ORD_COIL_INNER_DIA' OR
       ls_e1cuval_1-charc EQ 'ORD_NICKEL_FLASH' OR
       ls_e1cuval_1-charc EQ 'ORD_NUMBER_MULTS'.
      CONTINUE.
` 80 of 97
    ENDIF.

    READ TABLE it_e1cuval_2 INTO ls_e1cuval_2 WITH KEY charc = ls_e1cuval_1-charc.
    IF ls_e1cuval_1-value NE ls_e1cuval_2-value.
      critical = abap_true.
      EXIT.
    ENDIF.

    READ TABLE it_e1cuval_3 INTO ls_e1cuval_3 WITH KEY charc = ls_e1cuval_1-charc.
    IF ls_e1cuval_1-value NE ls_e1cuval_3-value.
      critical = abap_true.
      EXIT.
    ENDIF.
  ENDLOOP.

ENDFUNCTION.

Version 13.2

Code changes at: LZUS_SOP303F02


Start at line 1812
IF  lv_widthtol <> ''.
*    IF i_input-widthtol <> ''  AND lv_value > 0 ."i_input-widthtolplus IS NOT INITIAL.
*      CLEAR: msgnum, msgv1, msgv2, msgv3, msgv4.
*      msgnum = 007.
*      msgv1 = i_input-widthtol.
*      msgv2 = lv_value ."i_input-widthtolplus.
*      PERFORM preparemessage USING msgnum msgv1 msgv2 msgv3 msgv4.
*    ENDIF.
*    CLEAR: lv_atflv, lv_value.
*    lv_atflv = i_input-widthtolminus.
*    lv_value = lv_atflv.
*
*    IF i_input-widthtol <> '' AND lv_value > 0 ."i_input-widthtolminus IS NOT INITIAL.
*      CLEAR: msgnum, msgv1, msgv2, msgv3, msgv4.
*      msgnum = 008.
*      msgv1 = i_input-widthtol.
*      msgv2 = lv_value. "i_input-widthtolminus.
*      PERFORM preparemessage USING msgnum msgv1 msgv2 msgv3 msgv4.
*    ENDIF.

Start at line 1659


*    IF ( lv_value > 0 OR lv_gaugetolminus > 0 ). "If Guage TOl is selected Plus and M
inus cannot have value
*      CLEAR: msgnum, msgv1, msgv2, msgv3, msgv4.
*      msgnum = 022.
*      msgv1 = lv_guagetol.
*      msgv2 = lv_value."i_input-gaugetolminus.
*      PERFORM preparemessage USING msgnum msgv1 msgv2 msgv3 msgv4.
*    ENDIF.

Version 13.3
CHG0123086 - Restricted flags not updating when submitted 2. have to submit more than once.
1. Materials are not updating the restricted flags (putting on or taking off of the material) in SAP when submitted. OSA's do not know if
their changes actually worked when submitted and have to review and or submit several more times for the changes to take. 2.
Normally when you submit an order, the order immediately disappears off the list. The OSA's currently are submitting the material and

` 81 of 97
when going back to the screen it is staying there. They then have to review and submit again. Sometimes this process takes several
times before the submit actually takes.

Version 13.4
CHG0126546 - Demand Planning/Facility Loading is creating 4-5 material BOM's because they are missing on SAP Materials delaying
order allocation.
Orders will not allocate for SAP materials until a BOM is created - an manual allocation attempt must first be made to understand that
there is an issue. When the order remains on the same hold (i.e. Capacity), the Order Allocator then knows they have to go into EP4
and check for BOM status and create if missing.

Inside the class: ZCL_ZUS_SOP303_MATMAST_DPC_EXT, method:


/IWBEP/IF_MGW_APPL_SRV_RUNTIME~CHANGESET_PROCESS, when processing MatnrCorpQtySet, we need to validate if the
desired plant exists or not. If not exists, we need to read the WERKS from KNMT table where matnr = input-matnr and kunnr like
00008%.

The lines were commented out:

*&---------------------------------------------------------------------*
*& Form CREATE_BOM_LINK
*&---------------------------------------------------------------------*
*& text
*&---------------------------------------------------------------------*
*& --> I_INPUT
*&---------------------------------------------------------------------*
FORM create_bom_link USING i_input TYPE zus303_upd_mat_chars
i_werks TYPE werks_d.

IF i_input-action = 'SUB'.
****BOC BXMUKK 03/04/2021 CHG0126546 --> BOM link to configurable Material
** Data declaration for the local variables and function
* DATA i_matnr TYPE matnr.
* DATA i_plant TYPE werks_d.
* DATA i_bom_usage TYPE stlan VALUE '1'.
* DATA i_stko LIKE stko_api01.
** DATA t_return TYPE STANDARD TABLE OF bapiret2.
* i_matnr = i_input-matnr.
** i_plant = i_input-plant.
*** Pass Default values ot stko structure.
* i_stko-base_quan = '1000'.
* i_stko-base_unit = 'LB'.
* i_stko-bom_status = '00'.
*
*** select active plant from knmt
** SELECT SINGLE werks FROM knmt INTO @i_plant WHERE matnr = @i_matnr.
*** mmsta = @space.
*** select matnr from mast where matnr
* i_plant = i_werks.
*
* SELECT SINGLE matnr FROM mast INTO @i_matnr WHERE matnr = @i_matnr AND werks =
@i_plant.
* IF sy-subrc NE 0 .
* i_matnr = i_input-matnr.
* CALL FUNCTION 'CSAP_MAT_BOM_CREATE'
* EXPORTING
* material = i_matnr
* plant = i_plant
* bom_usage = i_bom_usage
* i_stko = i_stko
* fl_default_values = 'X'
* EXCEPTIONS
` 82 of 97
* error = 1
* OTHERS = 2.
* ENDIF.

The lines were inserted:

DATA: lo_util TYPE REF TO zcl_otc_utility.


CREATE OBJECT lo_util.
lo_util->bom_assignment(
EXPORTING
i_matnr = i_input-matnr
i_werks = i_werks
IMPORTING
et_return = DATA(lt_bom_asgmt_ret) " Return table
).
APPEND LINES OF lt_bom_asgmt_ret TO gt_return.
***EOC CHG0126546

Function module:

ZUS_SOP_303_CORP_QLTY_UPDATE

***----BOC BXMUKK CHG0126546 02/25/2021


* lv_werks = i_input_corp_qlty-desired_plant.
lv_werks = i_input-plant.
***--- EOC CHG0126546

Method: /IWBEP/IF_MGW_APPL_SRV_RUNTIME~CHANGESET_PROCESS

***""BOC BXMUKK CHG0126546 02/16/2021-- Get the Plant


IF ls_matnrcorpqty-desired_plant IS INITIAL.
SELECT werks FROM knmt WHERE matnr = @lv_matnr AND kunnr LIKE '00008%'
ORDER BY PRIMARY KEY
INTO @ls_matnrcorpqty-desired_plant UP TO 1 ROWS.
ENDSELECT.
ENDIF.
MOVE-CORRESPONDING ls_matnrcorpqty TO i_input.
***Convert ls_matnrcorpqty-plant to internal value and assign to i_input-plant.

IF NOT ls_matnrcorpqty-plant IS INITIAL.


SELECT werks FROM t001w WHERE name1 = @ls_matnrcorpqty-plant ORDER BY
PRIMARY KEY
INTO @DATA(lv_int_werks) UP TO 1 ROWS.
ENDSELECT.
IF NOT lv_int_werks IS INITIAL.
i_input-plant = lv_int_werks.
CLEAR: lv_int_werks.
ENDIF.
ENDIF.
***"" EOC CHG0126546

Version 14.0

Version 14 - CHG0140154
` 83 of 97
Auto Forecasting Project Changes – New Logic for creating the Material Master
- The logic of creating the new Material master from NAFTA is suspended.
- The Workflow creation trigger point is changed.
- The Material Fiori panel is changed to have the header fields as input fields.

1. New property ShipState for MATNR entity in ZUS_SOP303_MATMASTER OData Project.

2. Changes to the method MATNRSET_GET_ENTITY of the class ZCL_ZUS_SOP303_MATMAST_DPC_EXT, which is called


by the MDA Panel to retrieve data from a material and display it.
All changes can be found using the username 70095233.
The values from caster, hot roll, cold roll and coat are now retrieved from the product version linked to the material/plant, not
the characteristics.

The customer field was also changed to get not only the name, but its number too.

` 84 of 97
And now the ship state will be filled in a different field (added to the entity above), instead of concatenating it to the city field.

3. Same changes done in the method MATNRSET_GET_ENTITY of the class ZCL_ZUS_SOP303_MATMAST_DPC_EXT were
also applied to the method ZCL_ZUS_GET_MASTERDATA of the same class.
All changes can be found using the username 70095233.

4. New fields SHIP_STATE and ROUTINGHOTROLL to the structure ZUS303_UPD_MAT_CHARS, to be able to update them.
The type of SHIP_CITY was changed, from WERKS_D to ATWRT.

5. Changes to the form MAPPING of the include LZUS_SOP303F01, called by the function ZUS_SOP_303_UPDATE_CHARS,
which is triggered by the update from MDA Panel.
These changes are needed to update Ship City and State, unit of measure, gauge, width, length, caster, hot roll, cold roll and
coat.
All changes can be found using the username 70095233.
In this order: caster, cold roll, hot roll, coat, ship city and ship state.

` 85 of 97
` 86 of 97
Unit of measure

` 87 of 97
Gauge

` 88 of 97
Width

` 89 of 97
Length

` 90 of 97
6. New property PartStatus for MATNRMARA entity in ZUS_SOP303_MATMASTER OData Project.

7. Filling new field PARTSTATUS of the entity MATNRMARA on the method MATNRMARASET_GET_ENTITY of the class
ZCL_ZUS_SOP303_MATMAST_DPC_EXT, which is called by the Material Info to retrieve data from a material and display it.
All changes can be found using the username 70095233.

VERSION 14.1 MTF OSA panel -Material locked by user error


When trying to submit the material from MTF OSA app, system is giving error saying that the material is
locked by the user and User is not able to submit the material . The issue is in the backend program.
Comments in the material are updated once the configuration is saved. By that time the lock on the material
still exists and it is giving error,
To overcome this issue code is changed to check the lock and later update the comments for the material

` 91 of 97
Version 14.2

Version 14.2 - CR00007293 02/17/2022

Duplicate coat substrate options in OSA panel – Adding logic for deletion & inactive indicator for table MAPL

- The logic of for deletion & inactive indicator for table MAPL

At Line No 79-82 adding the flags LOEKZ not equal to ‘X’ & PARKZ not equal to ‘X’.

Versionn 14.6
CR00005180 Drop cut loosing in S/4 Hana

Several issues in MDA Fiori Panel addressed in this CR


1.Drop cut Information is losing From Fiori Panel when we change the Drop cut it is not populating into S/4
Hana. This is due to the code not populating drop cut value in the Backend
2. Missing coil id for MTF materials in few instances.
3. Material configuration data is not getting copied from Basic data to MRP3 data. Updating plant information
was causing this issuewhich was fixed
4. Sometimes material plant specific status is not coming of. ( 01 to Blanking). Some time code was not
removing 01 from pant status field.
5. Thickness Tol Po text and Width tol PO text is not populating values in S/4 Hana even though we populate
in Fiori . This issue is due to drop down logic was not correct

Version:14.7
CR00005980 and CR00005981 CIM panel data update not working ;
When we update the fields in CIM panel its should update the Material MRP data and Forecasting data. But it is not updating the
values in the material master. The above fields are modified
` 92 of 97
After submission MM03 should update the field values in SAP which is not modifying the values

` 93 of 97
Forecasting values are also not changed

` 94 of 97
Version 14.8
CR00007987 Future part characteristics are “falling off” the material at OSA completion
The following characteristics are missing when we save the material from OSA Fiori panel

ORD_PART_SALES_CUST
ORD_PART_SALES_UNIT
ORD_PART_SHIPTO_CUST
ORD_PART_CORE_UNIT
ORD_PART_ACCT_MGR
ORD_PART_ACCT_CSR
` 95 of 97
ORD_DEAL_NAME
ORD_DEAL_TYPE
ORD_PART_PROD_VER
ORD_MGD_ABP_IND
ORD_PLANNED_SPEC
The values exist when the material is created and saved from MDA panel , but when we submit it from OSA
panel these characteristics are disappearing.

Version 14.9
CR00006531 - MTF not showing gauge/width tolerance PO text in the material display screen in Fiori. Same
issue on the OSA worklist.

Change BSB Application: ZSOP_MD_MATINFO

Fix that issue for Gauge Tol PO Text and Width Tol PO Text not showing in the Material Display –
Characteristics Info Fiori Application.

Version:15.0 CR00006339 Restrict material workflows from being created by MDA, OSA, and CIM for any
status other than active.

Workflow from ZOTC05 should not be triggered for materials when the status of material is not active
` 96 of 97
The field value should be MARA-ZZ1_PARTSTATUS_PRD = ‘A’ to trigger the workflow.

The program to be changed is ZUS_PD305_MTF_GENEALOGY_REPORT


We should check before calling CALL FUNCTION 'SWE_EVENT_CREATE'  function
the Status field .
if it has Value ‘A’ then we should call the event to trigger workflow.

Version 15.1

New field to capture CORP or LLC items


1. User will fill in a field in part upload template to capture the material as Corp or LLC which is equal to “Y
“ for Corp and “ ” for LLC materials.
2. Program will read this field from template maintain this value Y – (Field checked) or blank in the table
MARA – CADKZ against each SAP Material ID.

Adding Planning Product Detail


1. Configure next level product hierarchy to capture the Planning Product Detail
2. Part creation upload template will have the Planning Product details during creation it will get updated
to the new characterisitcs field against each material ID in ZPPD charaterisitics.

` 97 of 97

You might also like