cancel
Showing results for 
Search instead for 
Did you mean: 

Success Factors PI Integration - XIAdapterException - element-only

PatrickDean
Participant
0 Kudos

Hi there,

I'm presently trying to synch Employee data with Success Factors using ECC program RH_SFI_SYNCHRONIZE_EMPL_DATA.

The logon / logoff handshakes appear to be working (I can ping the Communication Channel, and when running the RH_SFI program, I used to get login errors when my credentials were wrong, now that message mapping works okay it seems....).

SXMB_MONI is telling me that SF is returning the following message:

<SAP:AdditionalText>com.sap.engine.interfaces.messaging.api.exception.MessagingException: com.sap.aii.af.lib.ra.cci.XIAdapterException: [Error]:2:47: cvc-complex-type.2.3: Element 'ns2:sfobject' cannot have character [children], because the type's content type is element-only.</SAP:AdditionalText>

As far as I can see, in the data types (even for complex data types) I can only specify "element" and have done this before with substructures, children etc...

Here is my CommChannel config :

The message mapping is standard, as downloaded in the SuccessFactors tpz files.

Has anyone else come across this, and how was it solved? Thanks in advance for any help! All the best - Patrick

Accepted Solutions (0)

Answers (2)

Answers (2)

vjimenez
Explorer
0 Kudos

Hi Patrick!

Could you solve it? how did you do it?
I'll really appreciate any help.

Thanks in advance..

Former Member
0 Kudos

I collected some experience with the Connectivity Add-On on PI and tried many different scenarios. It's in some cases really tricky. And we also ran into the same mistake!

If you use the SFSF-Adapter, don't use the predefined message types and don't use the message types you would use when using SOAP directly.

The SFSF-Receiver contains a lot of logic that creates a different SOAP request than you give to it.

You can see this easily when you look into SFSF->Admin Tools->SAPI Log

However, if you want to use the message as it is with mapping, you must use the SOAP Channel template that comes with the Connectitiy Add-On.

For the SFSF-Adapter messagetype has to look like this:

Messagetype:          upsertUser (must)

Namespace:            <any>

Datatype:                <any name>

XML-Namespace:    Must be empty!

Structure of Messagetype:

     upsertUser (Messagetype)

          User (0..unbounded)

               status

               externId

               username

               ...

See more here:

http://scn.sap.com/message/15713342#15713342