on 06-07-2016 8:42 AM
Hello all,
Could someone please provide me with link to the structure of XML file required for offline screening of SPL?
I found the following link by running a search on SCN:
http://help.sap.com/saphelp_gts10/helpdata/en/37/d7184b1677481db90f86dff2ab9183/content.htm
The above link just has the address structure of Sanctioned Parties.
Does this suffice to successfully upload sanctioned party lists or should any more fields be added like Legal regulation, List type?
I am very new to the Compliance Management module of GTS. Any help will be greatly appreciated.
Thanks,
Sowbhagya
Thomas,
This ST is not available in my GTS system.
Should any setting be made in SPRO under SPL for this to become available?
Thanks,
Sowbhagya
You must be a registered user to add a comment. If you've already registered, sign in. Otherwise, register and sign in.
Hello Sowbhagya,
that surprises me. Can you take a look at the table TSTC with SE16 and search vor XSLT*? Maybe you do not have permission for transaction. What message do you get when you run the transaction?
But no matter. I have now added the structure here. Notice that the á in the attached file are blanks or open it with the notepad editor.
<?sap.transform simple?>
<tt:transform xmlns:tt="http://www.sap.com/transformation-templates" xmlns:ddic="http://www.sap.com/abapxml/types/dictionary" xmlns:def="http://www.sap.com/abapxml/types/defined">
<tt:root name="SLL_SPL_DATA_FILE" type="ddic:/SAPSLL/SPL_XML_DATA_FILE_S"/>
<tt:template>
<n0:SLL_SPL_DATA_FILE xmlns:n0="http://sap.com/xi/GTS">
<SLL_SPL_CONTROL>
<SLL_SPL_DATA_PROVIDER_ID tt:value-ref=".SLL_SPL_DATA_FILE.SLL_SPL_CONTROL.SLL_SPL_DATA_PROVIDER_ID"/>
<SLL_SPL_FILE_ID tt:value-ref=".SLL_SPL_DATA_FILE.SLL_SPL_CONTROL.SLL_SPL_FILE_ID"/>
<SLL_SPL_VRSIO tt:value-ref=".SLL_SPL_DATA_FILE.SLL_SPL_CONTROL.SLL_SPL_VRSIO"/>
<tt:d-cond check="exist(SLL_SPL_DATA_FILE.SLL_SPL_CONTROL.SLL_SPL_BASE_URL)">
<SLL_SPL_BASE_URL tt:value-ref=".SLL_SPL_DATA_FILE.SLL_SPL_CONTROL.SLL_SPL_BASE_URL"/>
</tt:d-cond>
</SLL_SPL_CONTROL>
<tt:loop ref=".SLL_SPL_DATA_FILE.SLL_SPL_ENTITY">
<SLL_SPL_ENTITY>
<SLL_SPL_HEADER>
<SLL_SPL_DATA_REF_ID tt:value-ref="SLL_SPL_HEADER.SLL_SPL_DATA_REF_ID"/>
<SLL_SPL_LIST_TYPE tt:value-ref="SLL_SPL_HEADER.SLL_SPL_LIST_TYPE"/>
<tt:skip count="*" name="SLL_SPL_AUTHORITY"/>
<tt:d-cond check="exist(SLL_SPL_HEADER.SLL_SPL_LAW1)">
<SLL_SPL_LAW1 tt:value-ref="SLL_SPL_HEADER.SLL_SPL_LAW1"/>
</tt:d-cond>
<tt:d-cond check="exist(SLL_SPL_HEADER.SLL_SPL_LAW2)">
<SLL_SPL_LAW2 tt:value-ref="SLL_SPL_HEADER.SLL_SPL_LAW2"/>
</tt:d-cond>
<tt:d-cond check="exist(SLL_SPL_HEADER.SLL_SPL_LAW3)">
<SLL_SPL_LAW3 tt:value-ref="SLL_SPL_HEADER.SLL_SPL_LAW3"/>
</tt:d-cond>
<tt:d-cond check="exist(SLL_SPL_HEADER.SLL_SPL_ENTRY_DATE)">
<SLL_SPL_ENTRY_DATE tt:value-ref="SLL_SPL_HEADER.SLL_SPL_ENTRY_DATE"/>
</tt:d-cond>
<tt:d-cond check="exist(SLL_SPL_HEADER.SLL_SPL_VALID_FROM)">
<SLL_SPL_VALID_FROM tt:value-ref="SLL_SPL_HEADER.SLL_SPL_VALID_FROM"/>
</tt:d-cond>
<tt:d-cond check="exist(SLL_SPL_HEADER.SLL_SPL_VALID_TO)">
<SLL_SPL_VALID_TO tt:value-ref="SLL_SPL_HEADER.SLL_SPL_VALID_TO"/>
</tt:d-cond>
<tt:d-cond check="exist(SLL_SPL_HEADER.SLL_SPL_COMMENT1)">
<SLL_SPL_COMMENT1 tt:value-ref="SLL_SPL_HEADER.SLL_SPL_COMMENT1"/>
</tt:d-cond>
<tt:d-cond check="exist(SLL_SPL_HEADER.SLL_SPL_COMMENT2)">
<SLL_SPL_COMMENT2 tt:value-ref="SLL_SPL_HEADER.SLL_SPL_COMMENT2"/>
</tt:d-cond>
<tt:d-cond check="exist(SLL_SPL_HEADER.SLL_SPL_COMMENT3)">
<SLL_SPL_COMMENT3 tt:value-ref="SLL_SPL_HEADER.SLL_SPL_COMMENT3"/>
</tt:d-cond>
<tt:d-cond check="exist(SLL_SPL_HEADER.SLL_SPL_URL)">
<SLL_SPL_URL tt:value-ref="SLL_SPL_HEADER.SLL_SPL_URL"/>
</tt:d-cond>
<tt:d-cond check="exist(SLL_SPL_HEADER.SLL_SPL_ENTITY_TYPE)">
<SLL_SPL_ENTITY_TYPE tt:value-ref="SLL_SPL_HEADER.SLL_SPL_ENTITY_TYPE"/>
</tt:d-cond>
<tt:d-cond check="exist(SLL_SPL_HEADER.SLL_SPL_GROUP)">
<SLL_SPL_GROUP tt:value-ref="SLL_SPL_HEADER.SLL_SPL_GROUP"/>
</tt:d-cond>
</SLL_SPL_HEADER>
<tt:loop ref="SLL_SPL_NAME">
<SLL_SPL_NAME>
<tt:skip count="*" name="SLL_SPL_DATA_REF_ID"/>
<tt:d-cond check="exist(SLL_SPL_REF_TYPE)">
<SLL_SPL_REF_TYPE tt:value-ref="SLL_SPL_REF_TYPE"/>
</tt:d-cond>
<SLL_SPL_NAME1 tt:value-ref="SLL_SPL_NAME1"/>
<tt:d-cond check="exist(SLL_SPL_NAME2)">
<SLL_SPL_NAME2 tt:value-ref="SLL_SPL_NAME2"/>
</tt:d-cond>
<tt:d-cond check="exist(SLL_SPL_NAME3)">
<SLL_SPL_NAME3 tt:value-ref="SLL_SPL_NAME3"/>
</tt:d-cond>
<tt:d-cond check="exist(SLL_SPL_NAME4)">
<SLL_SPL_NAME4 tt:value-ref="SLL_SPL_NAME4"/>
</tt:d-cond>
<tt:d-cond check="exist(SLL_SPL_NAME_CO)">
<SLL_SPL_NAME_CO tt:value-ref="SLL_SPL_NAME_CO"/>
</tt:d-cond>
<tt:d-cond check="exist(SLL_SPL_EXTERNAL_ID)">
<SLL_SPL_EXTERNAL_ID tt:value-ref="SLL_SPL_EXTERNAL_ID"/>
</tt:d-cond>
<tt:d-cond check="exist(SLL_SPL_PASSPORT_COUNTRY)">
<SLL_SPL_PASSPORT_COUNTRY tt:value-ref="SLL_SPL_PASSPORT_COUNTRY"/>
</tt:d-cond>
<tt:d-cond check="exist(SLL_SPL_IDENTIFICATION_NUMBER)">
<SLL_SPL_IDENTIFICATION_NUMBER tt:value-ref="SLL_SPL_IDENTIFICATION_NUMBER"/>
</tt:d-cond>
<tt:d-cond check="exist(SLL_SPL_PASSPORT_NUMBER)">
<SLL_SPL_PASSPORT_NUMBER tt:value-ref="SLL_SPL_PASSPORT_NUMBER"/>
</tt:d-cond>
</SLL_SPL_NAME>
</tt:loop>
<tt:loop ref="SLL_SPL_ADDRESS">
<SLL_SPL_ADDRESS>
<tt:skip count="*" name="SLL_SPL_DATA_REF_ID"/>
<tt:d-cond check="exist(SLL_SPL_ZIP)">
<SLL_SPL_ZIP tt:value-ref="SLL_SPL_ZIP"/>
</tt:d-cond>
<tt:d-cond check="exist(SLL_SPL_CITY)">
<SLL_SPL_CITY tt:value-ref="SLL_SPL_CITY"/>
</tt:d-cond>
<tt:d-cond check="exist(SLL_SPL_DISTRICT)">
<SLL_SPL_DISTRICT tt:value-ref="SLL_SPL_DISTRICT"/>
</tt:d-cond>
<tt:d-cond check="exist(SLL_SPL_PO_CODE)">
<SLL_SPL_PO_CODE tt:value-ref="SLL_SPL_PO_CODE"/>
</tt:d-cond>
<tt:d-cond check="exist(SLL_SPL_PO_BOX)">
<SLL_SPL_PO_BOX tt:value-ref="SLL_SPL_PO_BOX"/>
</tt:d-cond>
<tt:d-cond check="exist(SLL_SPL_STREET)">
<SLL_SPL_STREET tt:value-ref="SLL_SPL_STREET"/>
</tt:d-cond>
<tt:d-cond check="exist(SLL_SPL_HOUSE_NUMBER)">
<SLL_SPL_HOUSE_NUMBER tt:value-ref="SLL_SPL_HOUSE_NUMBER"/>
</tt:d-cond>
<tt:d-cond check="exist(SLL_SPL_BUILDING)">
<SLL_SPL_BUILDING tt:value-ref="SLL_SPL_BUILDING"/>
</tt:d-cond>
<tt:d-cond check="exist(SLL_SPL_ROOM_NUMBER)">
<SLL_SPL_ROOM_NUMBER tt:value-ref="SLL_SPL_ROOM_NUMBER"/>
</tt:d-cond>
<tt:d-cond check="exist(SLL_SPL_COUNTRY)">
<SLL_SPL_COUNTRY tt:value-ref="SLL_SPL_COUNTRY"/>
</tt:d-cond>
<tt:d-cond check="exist(SLL_SPL_REGION)">
<SLL_SPL_REGION tt:value-ref="SLL_SPL_REGION"/>
</tt:d-cond>
</SLL_SPL_ADDRESS>
</tt:loop>
<tt:loop ref="SLL_SPL_IDENTIFICATION">
<SLL_SPL_IDENTIFICATION>
<SLL_SPL_ID_TYPE tt:value-ref="SLL_SPL_ID_TYPE"/>
<tt:d-cond check="exist(SLL_SPL_ID_NUMBER)">
<SLL_SPL_ID_NUMBER tt:value-ref="SLL_SPL_ID_NUMBER"/>
</tt:d-cond>
<tt:d-cond check="exist(SLL_SPL_ID_ISSUING_CITY)">
<SLL_SPL_ID_ISSUING_CITY tt:value-ref="SLL_SPL_ID_ISSUING_CITY"/>
</tt:d-cond>
<tt:d-cond check="exist(SLL_SPL_ID_ISSUING_REGION)">
<SLL_SPL_ID_ISSUING_REGION tt:value-ref="SLL_SPL_ID_ISSUING_REGION"/>
</tt:d-cond>
<tt:d-cond check="exist(SLL_SPL_ID_ISSUING_COUNTRY)">
<SLL_SPL_ID_ISSUING_COUNTRY tt:value-ref="SLL_SPL_ID_ISSUING_COUNTRY"/>
</tt:d-cond>
</SLL_SPL_IDENTIFICATION>
</tt:loop>
<tt:loop ref="SLL_SPL_DATE_OF_BIRTH">
<SLL_SPL_DATE_OF_BIRTH>
<tt:d-cond check="exist(SLL_SPL_DOB_FROM)">
<SLL_SPL_DOB_FROM tt:value-ref="SLL_SPL_DOB_FROM"/>
</tt:d-cond>
<tt:d-cond check="exist(SLL_SPL_DOB_TO)">
<SLL_SPL_DOB_TO tt:value-ref="SLL_SPL_DOB_TO"/>
</tt:d-cond>
<tt:d-cond check="exist(SLL_SPL_DOB_ISSUING_CITY)">
<SLL_SPL_DOB_ISSUING_CITY tt:value-ref="SLL_SPL_DOB_ISSUING_CITY"/>
</tt:d-cond>
<tt:d-cond check="exist(SLL_SPL_DOB_ISSUING_REGION)">
<SLL_SPL_DOB_ISSUING_REGION tt:value-ref="SLL_SPL_DOB_ISSUING_REGION"/>
</tt:d-cond>
<tt:d-cond check="exist(SLL_SPL_DOB_ISSUING_COUNTRY)">
<SLL_SPL_DOB_ISSUING_COUNTRY tt:value-ref="SLL_SPL_DOB_ISSUING_COUNTRY"/>
</tt:d-cond>
</SLL_SPL_DATE_OF_BIRTH>
</tt:loop>
</SLL_SPL_ENTITY>
</tt:loop>
<SLL_SPL_STATUS>
<tt:d-cond check="exist(SLL_SPL_DATA_FILE.SLL_SPL_STATUS.SLL_SPL_HEAD_NUMBER)">
<SLL_SPL_HEAD_NUMBER tt:value-ref=".SLL_SPL_DATA_FILE.SLL_SPL_STATUS.SLL_SPL_HEAD_NUMBER"/>
</tt:d-cond>
<tt:d-cond check="exist(SLL_SPL_DATA_FILE.SLL_SPL_STATUS.SLL_SPL_NAME_NUMBER)">
<SLL_SPL_NAME_NUMBER tt:value-ref=".SLL_SPL_DATA_FILE.SLL_SPL_STATUS.SLL_SPL_NAME_NUMBER"/>
</tt:d-cond>
<tt:d-cond check="exist(SLL_SPL_DATA_FILE.SLL_SPL_STATUS.SLL_SPL_ADDR_NUMBER)">
<SLL_SPL_ADDR_NUMBER tt:value-ref=".SLL_SPL_DATA_FILE.SLL_SPL_STATUS.SLL_SPL_ADDR_NUMBER"/>
</tt:d-cond>
</SLL_SPL_STATUS>
</n0:SLL_SPL_DATA_FILE>
</tt:template>
</tt:transform>
Regards,
Thomas
Hi Sowbhagya,
if the program /SAPSLL/SPL_UPLOAD_IXML exits in your system, the structure must also exits or the syntaxcheck throws an error.
Use TC SE38 for /SAPSLL/SPL_UPLOAD_IXML and search transformation. You will get two hits:
/SAPSLL/SPL_UPLOAD_IXML 325 * Use simple transformation to parse SPL XML file
/SAPSLL/SPL_UPLOAD_IXML_FOR 785 * Use simple transformation to upload SPL XML file
Pick up the first on and you find the fuba '/SAPSLL/SPL_ST_XML2A'. Here in the export parameter you find
ES_SPL_XML_DATA TYPE /SAPSLL/SPL_XML_DATA_FILE_S
if not, I have no idea what is going on with your GTS system.
Regards,
Thomas
Hi Thomas,
Thank you very much for your patience, time and help!
I found that in the GTS system I use, SAP Note 2157094 is not implemented. If you take a look at this note, we can see that the structure /SAPSLL/SPL_XML_DATA_FILE_S and simple transformation programs /SAPSLL/ST_SPL_XML_X2A and /SAPSLL/ST_SPL_XML_X2A_NS are created as a part of Manual pre implementation. I might have to implement this note to get these STs.
The GTS system I use runs on the support package SAPK-90113INSAPSLL, may be yours is on a higher support package.
Please help me with final questions:
If I implement this note, I must be able to use the standard Simple Transformation to Map XML fields to the standard XML structure required for offline screening, is that right?
Is there another such standard structure to map a regular (not offline) SPL upload or is it the same structure for offline and regular uploads?
Thanks,
Sowbhagya
Hi Sowbhagya,
the best thing you can do is to implement the latest patch SAPK-90119INSAPSLL (or SAPK-90116INSAPSLL as proposed). If you want to implement only 2157094, you have a lot of manual work to do.
As far as I know there is no other structure and transformation to load a XML file for SPL purpose in GTS.
Hope you can now get along with the informations
Regards,
Thomas
Hello Thomas,
Could you please provide me the full structure? I could not find it from that link.
Thanks,
Sowbhagya
You must be a registered user to add a comment. If you've already registered, sign in. Otherwise, register and sign in.
Hello Sowbhagya,
which provider do you use? We ar using the Bundesanzeiger and the XML file has the following structure
Look at:
Datenservice Sanktionslisten &#124; Bundesanzeiger Shop
Hope you get an imagination
Regards,
Thomas
You must be a registered user to add a comment. If you've already registered, sign in. Otherwise, register and sign in.
Hello Thomas,
Thank you for the reply. We do not use a service provider. Client is going to prepare a spreadsheet of SPL data manually. We are supposed to provide them the fields and structure in which they have to send their data so that it can be converted to XML uploaded successfully to GTS.
Thanks,
Sowbhagya
User | Count |
---|---|
12 | |
3 | |
1 | |
1 | |
1 | |
1 | |
1 | |
1 | |
1 | |
1 |
You must be a registered user to add a comment. If you've already registered, sign in. Otherwise, register and sign in.