cancel
Showing results for 
Search instead for 
Did you mean: 

XML structure for Offline screening of SPL

Former Member
0 Kudos

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

Accepted Solutions (1)

Accepted Solutions (1)

Former Member
0 Kudos

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

thomasrausch
Active Participant
0 Kudos

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

Former Member
0 Kudos

Hi Thomas,

Thank you very much for the structure!

I found something else, the DDIC structure "/SAPSLL/SPL_XML_DATA_FILE_S" used in the ST is not available in my system.

Should I be searching for a missing note?

Thanks,

Sowbhagya

thomasrausch
Active Participant
0 Kudos

Hi Sowbhagya,

you are missing the structure /SAPSLL/SPL_XML_ENTITY_S in your GTS system? Strange. Is the program /SAPSLL/SPL_UPLOAD_IXML available in your system?

Regards,

Thomas

Former Member
0 Kudos

Hi Thomas,

Yes, this program is available in my system. The structure "/SAPSLL/SPL_XML_DATA_FILE_S" is not.

I am guessing some XI related config must be done in the system for this to get activated?

Thanks,

Sowbhagya

thomasrausch
Active Participant
0 Kudos

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

Former Member
0 Kudos

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

thomasrausch
Active Participant
0 Kudos

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

Former Member
0 Kudos

Hi Thomas,

Thank you for the help and suggestions.

Greatly Appreciated!

Thanks,

Sowbhagya

Answers (2)

Answers (2)

Former Member
0 Kudos

Hello Thomas,

Could you please provide me the full structure? I could not find it from that link.

Thanks,

Sowbhagya

thomasrausch
Active Participant
0 Kudos

Hello Sowbhagya,


use transaction XSLT_TOOL in GTS and the transformation /SAPSLL/ST_SPL_XML_X2A_NS. This must be the SAP standard definition for the XML file.


If you use the small "cnadel Icon"



you can get a simpler view of the transformation



Hope the helps


Regards,


Thomas

Former Member
0 Kudos

Hi Thomas,

I do not find that ST in my GTS system. I use GTS 10.1.

What is your version?

Thanks,

Sowbhagya

thomasrausch
Active Participant
0 Kudos

Hi Sowbhagya,

we use 10.1 too. On the first screen insert, enter

and then

Regards,

Thomas

thomasrausch
Active Participant
0 Kudos

Hello Sowbhagya,

which provider do you use? We ar using the Bundesanzeiger and the XML file has the following structure

Look at:

Datenservice Sanktionslisten &amp;#124; Bundesanzeiger Shop

Hope you get an imagination

Regards,

Thomas

Former Member
0 Kudos

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