Document History
...
Industry Identifier | RU System | RU System Revision | REST Operation | REST Path | ||||||||
20 | NTF (Notification System) | 600 | EDO_CREATE_DOC | /apiUot/api/private/create-doc | ||||||||
20 | NTF (Notification System) | 600 | 20 | NTF (Notification System) | 600EDO_DATA_FOR_SIGN | /apiUot/api/private/getDataForSign | ||||||
20 | NTF (Notification System) | 600 | 20 | NTF (Notification System) | 600EDO_DOC_LIST | /apiUot/api/private/doc-list | ||||||
20 | NTF (Notification System) | 600 | 20 | NTF (Notification System) | 600EDO_GET_TOKEN | /apiUot/api/private/get-token | ||||||
20 | NTF (Notification System) | 600 | 20 | NTF (Notification System) | 600 | EDO_INFO_KM | /apiUot/api/private/info-km | |||||
20 | NTF (Notification System) | 600 | 20 | NTF (Notification System) | 600EDO_PROF_OUT_DOC | /apiUot/api/private/profile-out-doc | ||||||
20 | NTF (Notification System) | 600 | 20 | NTF (Notification System) | 600 | 20 | NTF (Notification System) | 600 | 20 | NTF (Notification System) | 600EDO_SEND_SIGNED | /apiUot/api/private/sendSigned |
Event additional properties
The following is a list of expected event properties to compose the notification message. The notification raise error in case the mandatory event properties is not available on the event.
Report codes transfer from non-resident
...
Property
...
Description
...
.
Report codes transfer from non-resident
Property | Description | Mandatory? |
ZR_KZ_CTR_CODE | Country of export according to the directory of countries | N |
ZR_KZ_PRM_DOC_DATE | Date of paper document Notifications in the format YYYY-MM-DD | N |
ZR_KZ_SUPPL_ID | Identifier taxpayer (TIN, IIN, BIN and etc.) sender or equivalent | N |
ZR_KZ_CONS_ID | IIN/BIN of the recipient | N |
Customizing the solution
In general, customizing is performed with following transactions:
...
Name | Description, Values |
EDO_SYSTEM | ATTP System name (with assigned RFC with path /edo/api ) Example: EDO |
EDO_SYSTEM_API | ATTP System name for internal Connector calls (with assigned RFC without path /edo/api ) Example: EDO |
|
|
Customizing for Reports
Relevant industry
...
Field | Description, Values |
Doc Type | Internal document type (values are predefined).
|
Document Type Description | Text to be displayed at Report Monitor for document type |
EDO Document Type | TRUE API EDO System document type |
Mapping attributes
...
Field | Description, Values |
Product group | Product group from True EDO API documentation Example: pharma |
Text | Description (used at search help) Example: Pharma |
...
EDO status customizing in the transaction /K3TKZ/EDO_CUST under “EDO Status send from” contains possible status values for message sequence check before sending to EDO system. Note Node “EDO Status change to” contains new status value to be set after receiving successful response for notification. 3Keys Kazakhstan EDO already contains EDO status, maintain values in case other status processing logic is required
...
Participant tax code fields could be filled with value from source or destination fields of the EPCIS event or business transaction in the transaction /K3TKZ/EDO_ATTR_MAP .
The following location data source is supported:
...
Class-based rule condition is maintained via transaction /K3TKZ/EDO_CUST node “Rule condition” and based on class method /K3TKZ/CLCL_EDO_RULES=>GET_RULE_CONDITION_CLASS. Method is used to get class name from table /K3TKZ/C_CONDEDOCOND, custom class could be assigned as condition processor. Class method /K3TKZ/IF_EDO_3K_RULE_CONDITIONS~EXECUTE is called. (Rule processing will stop check if result is skip rule).
...
Background job needs to be planned for the report /K3TKZ/EDO_DISPATCHER. The sequence check results are stored as application log transaction SLG1, Object /STTP/, Sub object DMREP, External ID /K3TKZ/EDO_SEND
The logic of the sequence check:
Call BADI /K3TKZ/BADI_REPEDO_SEQ_CHECK method BEFORE_CHECK
Check objects EDO status (status found). The EDO status tracked for every SGTIN in the table /K3TKZ/OBJEDO_STA. The SSCC EDO status determined based on the first found SGTIN in the current hierarchy
Processing status: there is no report with the same objects in status “Send”
Check predecessor: there is no report with the same objects earlier than the current message
Call BADI /K3TKZ/BADI_REPEDO_SEQ_CHECK method AFTER_CHECK
The EDO status could be updated with transaction /K3TKZ/EDO_SN_INFO or program /K3TKZ/EDO_OMS_REP (if SGTIN was send to OMS with BR_CRYPTO_COMM event).
The sequence check can be skipped/ignored by user in the transaction /K3TKZ/DOCEDO_MONITOR with button Approval
...
Maintain Configuration ID in the transaction /K3TKZ/EDO_CONF under “Configuration ID”
Field | Description, Values | ||
Configuration ID | Free text used to describe the Configuration ID | ||
Config description | Description | ||
Delay Response | Delay in seconds before first response for notification | ||
Max error | Maximum error counter before set notification status “No response” | ||
User Apprvl | Wait explicit user approval (optional) | Signature required | Manual signature via NCA Layer required |
Maintain Participant Tax code in the transaction /K3TKZ/EDO_CONF under “Participant Tax code”
Field | Description, Values |
Participant tax code | Participant Tax code from notification |
Configuration ID | Free text used to describe the Configuration ID |
EDO SSO UUID | GUID from EDO system (obsolete after Nov 2023) |
Background jobs for report processing
...
The report run results are stored as application log transaction SLG1, Object /STTP/, Sub object DMREP, External ID /K3TKZ/EDO_SEND
...
field “Error text” with error from JSON
field “Response code”
field “Response error counter” - increase value by 1. When response error counter value become more than maximum error counter set in the configuration customizing (table /K3TKZ/C_CONF_IDEDOCNF) report processing status is set to “No response”
analyze if received HTTP error code is server error (selection screen parameter) during this report run and stop processing if value of screen parameter “Stop after error number” exceeded
The report run results are stored as application log transaction SLG1, Object /STTP/, Sub object DMREP, External ID /K3TKZ/EDO_RESPONSE
...
The report run results are stored as application log transaction SLG1, Object /STTP/, Sub object DMREP, External ID /K3TKZ/OMS_REPREPORT
5. Enhancements of the Solution
...
Redefine default rule execution class /K3TKZ/CL_EDO_3K_RULE_PROC to custom class using table /K3TKZ/C_RTYPE EDORTYP and implement own logic with ABAP to skip specific rule after rule configuration reading
Maintain rule type in the transaction /K3TKZ/EDO_CUST under “Rule Type”
Field | Description, Values |
Rule Type | Rule type Example Z3KKZ_MTEDO |
Class name | Customer class name to redefine logic |
Description | Text description |
...
Implementing a BADI /STTP/BADI_RULE_CONDITIONS with filter = rule condition
Implementing 3Keys rule condition class containing interface /K3TKZ/IF_EDO_3K_RULE_CONDITIONSCOND. Custom logic needs to be created at method /K3TKZ/IF_3K_RULE_CONDITIONS~EXECUTECOND~EXECUTE.
Maintain rule condition in the transaction /K3TKZ/EDO_CUST under “Rule Condition”
...
The report JSON generated by ATTP standard may not fit to the business requirements. To change report XML JSON the following options available:
...
To compose report data, it is possible to use own logic by creating new rule type with own rule type execution class by implementing interface /K3TKZ/IF_EDO_3K_RULE_MAPPING (method EXECUTE).
...
To assign custom execution class use transaction /K3TKZ/EDO_CUST, node “Mapping Attributes”, column “Mapper Class”.
...
To compose report data it is possible to change existing rule type logic by using mapping class redefinition. It is necessary to create own class as child class of /K3TKZ/CL_EDO_IMPORT0011_MAPPER Collect notification data (or copy of this class) and assign this new class to relevant rule type via transaction /K3TKZ/CUST, node “Mapping Attributes”, column “Mapper class”this new class to relevant rule type via transaction /K3TKZ/EDO_CUST, node “Mapping Attributes”, column “Mapper class”.
5.1.2.3. Change check logic after mapping
Badi /K3TKZ/BADI_EDO_CHG_AFTER_CHK shall be implemented for the rule type and own processing logic needs to be implemented.
5.1.2.3. Change report after mapping
Badi /STTPK3TKZ/BADI_RUEDO_CHANGECHG_AFTER_MAP shall be implemented for the rule type and own processing logic needs to be implemented.
...
Create new rule type via transaction /STTP/CUST_RULE_TYPE - Define Rule types
Create new notification type via transaction /STTP/REP_NOTIF_TYPE - Define Reporting Notification Types
Create ABAP structures for AIF (use structure /K3TKZ/S_EDO_IMPIMPNRES_AIF as example)
Create AIF customizing via transaction /AIF/CUST (Namespace /STTC3):
...
Create customizing for mapping report content via transaction /K3TKZ/EDO_CUST (“Mapping attributes” node)
Add logic to extract report data implementing BADI /K3TKZ/BADI_REPEDO_PARSE
Create customizing for new rule via transaction /STTP/CUST_RULES (3Keys General rule)
Create customizing for new rule via transaction /K3TKZ/EDO_CONF (“Rule configuration” node)
Create logic to parse data by implementing Badi /K3TKZ/BADI_REPEDO_PARSE
5.1.4. New industry
...
Create fixed value append for domain /STTP/D_INDUSTRY (for example ZP – Perfume). Skip this step if industry is supported by 3Keys Kazakhstan Connector for EDO.
Specify relevant industry for reporting (transaction /K3TKZ/EDO_CUST, node “Relevant Industry”)
Add new REST path for created industry (transaction SM30 view /STTP/V_RSRVPATH)
Add general customizing parameter RR_RU_NTF_REV for industry using transaction /STTP/CUSTGEN
Customizing Parameter Key | Customizing Parameter Option | Value |
RRZ3KKZ_RUEDO_NTF_REV | ZP | 600 |
5.1.5. Create new True API function
...
If base class for API processing does not exist create child class of /K3TKZ/CL_TRUE_API_REQ as custom class ZCL_TRUE_API_REQ
Create method GET_INSTANCE_ATT as copy of GET_INSTANCE at custom class ZCL_TRUE_API_REQ
Create new constant for rest operation (use constant /K3TKZ/CL_REST_CONST=>GCS_REST_OPERATION-NOTIFICATION-EDO-GET_CISES_INFO as example)
Add new REST path for created REST operation (transaction SM30 view /STTP/V_RSRVPATH)
Create processor class (use class /K3TKZ/CL_TRUE_API_CISES_INFO as example), for example ZCL_TRUE_API_CISES_INFO2
Add processor (class ZCL_TRUE_API_CISES_INFO2) instance creation logic into method GET_INSTANCE_ATT (based on rest operation) of base class ZCL_TRUE_API_REQ
Implement new created API processing class ZCL_TRUE_API_REQ call into custom code
5.1.6. Enhancement spot /K3TKZ/ES_
...
EDO
Badi | Description |
/K3TKZ/BADI_REPEDO_PARSE | Parse EDO report data Additional processing logic to parse notification data into report monitor entry on notification creation |
/K3TKZ/BADI_REPEDO_RESPONSE | Get Response from EDO Additional processing logic to change report monitor entry after report response receiving |
/K3TKZ/BADI_REPEDO_SEQ_CHECK | Sequence check on EDO Interaction Redefine default sequence check logic with own logic |
/K3TKZ/BADI_CHANGEEDO_CHG_AFTER_CHECKCHK | EDO: Change Data After Check Redefine check result on notification creation with own logic |
/K3TKZ/BADI_EDO_CHANGECHG_AFTER_MAP | EDO: Change Data After Mapping Redefine field mapping on notification creation with own logic |
...
Add general customizing parameter /K3TKZ/COCKPIT_NAVIG (usage scope Customizing) to enable navigation to ATTP Cockpit from transaction /K3TKZ/DOCEDO_MONITOR using transaction /STTP/CUSTGEN
...