cancel
Showing results for 
Search instead for 
Did you mean: 

MappingException: Mapping failed at Runtime

dipen_pandya
Contributor
0 Kudos

Dear Experts,

We are on the single stack (Java only) NW Process Orchestration/PI 7.4, I have a File (.csv) to RFC Scenario with iFlow.

My mapping program runs perfect in ESR, Even I am getting perfect output in payload.

My File Content Conversion is also correct but still my interface is not able to communicate with the RFC.

One more thing I found is dependency issues in the installation not fixed.

Java Foundation status is failed to start.

Advance Adapter Engine Extended(AEX) has error detected/dependency issues.

Does this dependency issues affect my interface to communicate with the RFC at SAP ABAP system?

I am attaching the screen capture of the error message.

I need to finish this urgently, Please help.

Thanks & Regards,

Dipen.

Accepted Solutions (0)

Answers (4)

Answers (4)

dipen_pandya
Contributor
0 Kudos

Dear All,

I am closing this discussion.

Still I have no luck.

Thanks all of you.

raviteja_satuluri
Contributor
0 Kudos

Hi Pandya,

You Can Use Simple PDF also

Regards,

Ravi

raviteja_satuluri
Contributor
0 Kudos

Hi Pandya,

Maintain the Following FCC Peramters,

Record.fieldSeperator

Record.keyfieldValues

Record.KeyfieldSeparator

Please find the following Link

XI/PI: File Content Conversion for Simple Structure

I Hope it works

Regards,

Ravi

dipen_pandya
Contributor
0 Kudos

Hi Folks,

Greeting of the day.

I resolved my error within FCC.

But still no luck.

I am facing the error in RFC adapter for receiving system as following;


MP: exception caught with cause com.sap.engine.interfaces.messaging.api.exception.MessagingException:

com.sap.aii.adapter.rfc.afcommunication.RfcAFWException:

error while processing message to remote system:com.sap.aii.adapter.rfc.core.client.RfcClientException:

JCO.Exception while calling ZPO_UPLOAD in remote system

(RfcClient[IFPO_FILE_to_RFC_CC_VE2_RFC_RECEIVER]):com.sap.mw.jco.JCO$Exception:

(104) RFC_ERROR_SYSTEM_FAILURE:                         

>?3.000 cannot be interpreted as a number (raised by system )

This would be a great help and appreciated a lot.

Thanks,

Please advice.

former_member192343
Active Contributor
0 Kudos

HI,

you send value 3.000 to RFC, but RFC is expecting integer number.

dipen_pandya
Contributor
0 Kudos

Hi,

Thanks for a quick prompt.

Can you please let me know & understand, How to achieve the integer number?

Does this problem is associated with PI or R3?

Please Advice.

former_member192343
Active Contributor
0 Kudos

If you have float values in source system then you have to use the same data type in target RFC.

If you sure that source values are always integer and they have just so type of formatting then you can transform values in mapping.

for example, what is 3.000? is it 3000 or 3,000? if it must be 3000, then you can delete dot sign in mapping with help of replaceString function.

dipen_pandya
Contributor
0 Kudos

Ok I understand this.

I assigned all datatype as xsd:string as the source system RFC is also expecting xsd:string type.

Value is like 300001.

I dont want to use replaceString.

I have attached the screen capture of target structure RFC.

Please advice.

former_member192343
Active Contributor
0 Kudos

even if your rfc target structure is xsd:string, abap code may put it in table field of type integer, then you will get error again.

You will not able to store 3.000 at abap side if it needs 3000. You can transorm it at source side (before exporting file), at PI side (in mapping), and at abap side before saving data to tables or calling abap functions.

dipen_pandya
Contributor
0 Kudos

Ok so I am supposed to make changes to my ABAP code.

Please see the image below & advice me.

former_member192343
Active Contributor
0 Kudos

but why do you want to store formatted numbers in string type instead of original integers? how you will work with them in the future?

dipen_pandya
Contributor
0 Kudos

Hi,

I do not have any formatted values.

Please see image below.

This is the file and values that i am sending to RFC/ABAP system.

I am not sure how does it give float value.

Please see even in payload there isnt any float value.

Even in mapping program payload works fine.


<?xml version="1.0" encoding="utf-8"?>

<ns:MT_ZPO_UPLOAD xmlns:ns="urn:podemo:b2b:purchaseorder:create">

    <Record>

        <BSART>NB</BSART>

        <BUKRS>300001</BUKRS>

        <EKGRP>1000</EKGRP>

        <EKORG>101</EKORG>

        <LIFNR>1000</LIFNR>

        <MATNR>R1301</MATNR>

        <MEINS>100</MEINS>

        <MENGE>NOS</MENGE>

        <MWSKZ>1500</MWSKZ>

        <NETPR>INR</NETPR>

        <WAERS>1000</WAERS>

        <WERKS>V0</WERKS>

    </Record>

</ns:MT_ZPO_UPLOAD>

???

former_member192343
Active Contributor
0 Kudos

ok, then where was the error


RFC_ERROR_SYSTEM_FAILURE:                          >?3.000 cannot be interpreted as a number (raised by system )

from?

former_member192343
Active Contributor
0 Kudos

check ar rfc adapter side what payload is after calling adapter?

dipen_pandya
Contributor
0 Kudos

That is what I am wondering.

Please help to solve this.

Now this interface is becoming horrible.

azharshaikh
Active Contributor
0 Kudos

Hi Dipen,

Can you give the screenshot of the Output Payload and Complete Target DT Structure...Are you using any kind of formatting in your Target Data type?

Regards,

Azhar

dipen_pandya
Contributor
0 Kudos

How to get the payload from rfc adapter?

Please advice.

dipen_pandya
Contributor
0 Kudos

Hi,

How to get the Output payload?

Below is my target structure.

Below is my source structure.

Below is the target data type created in the ABAP RFC.

I am getting below error;

MP: exception caught with cause com.sap.engine.interfaces.messaging.api.exception.MessagingException:

com.sap.aii.adapter.rfc.afcommunication.RfcAFWException:

error while processing message to remote system:com.sap.aii.adapter.rfc.core.client.RfcClientException:

JCO.Exception while calling ZPO_UPLOAD in remote system

(RfcClient[IFPO_FILE_to_RFC_CC_VE2_RFC_RECEIVER]):com.sap.mw.jco.JCO$Exception:

(104) RFC_ERROR_SYSTEM_FAILURE:                         

>?3.000 cannot be interpreted as a number (raised by system )

former_member192343
Active Contributor
0 Kudos

you can find it in channel monitoring, see your massage in log and press it...

or you can find it in message monitoring in RWB, choose adapter framework there in filter.

azharshaikh
Active Contributor
0 Kudos

Hi Dipen,

Have you defined any properties in "Details" column in your Target Data Type?

You can get the output payload from SXMB_MONI...seems there is Data type mis-match issue which is causing this error.

Regards,

Azhar

dipen_pandya
Contributor
0 Kudos

Hi,

No I have not defined anything in details.

As I am using JAVA only PI 7.4, I am not able to use SXMB_MONI.

So if there is a Data type mismatch issue then should I suppose to change my RFC at ABAP side?

Please suggest.

azharshaikh
Active Contributor
0 Kudos

Yes, the data needs to be in correct format as defined in the Structure..orelse it will give format issues..

raviteja_satuluri
Contributor
0 Kudos

Hi Pandya,

Please Check the following things

1. The Namespace of Sender Message type and The Name Space of FCC Parameters you are Using both are same or Different ?

2. Are You Maintained the Proper FCC Parameters.

In General this type of Error can come Only When we have not Maintained FCC Parameters properly

Please go through the following link

SAPTechnical.COM - File Content Conversion

It may Help to You

Regards,

Ravi

suman_saha
Contributor
0 Kudos

Hi,

Are you sure the FCC is proper?

Take the payload from message monitor and test that. Its clear that BSART field mapping is missing. Check the logic for that field and debug using display queue.

Suman

dipen_pandya
Contributor
0 Kudos

Hi Suman.

You are right.

I am facing the same error when i put the payload in ESR and tested.

See below,

So I am missing something in FCC.

I did FCC like below,

DT_ZPO_UPLOAD.endSeparator 'nl'
DT_ZPO_UPLOAD.fieldNames BSART,LIFNR,EKORG,EKGRP,BUKRS,MATNR,MENGE,MEINS,NETPR,WAERS,WERKS,MWSKZ

DT_ZPO_UPLOAD.additionalLastFields    ignore

DT_ZPO_UPLOAD.missingLastFields ignore

DT_ZPO_UPLOAD.keepIncompleteFields    Yes

DT_ZPO_UPLOAD.fieldSeparator ,

My mapping is like following,

And I am not able to get values in display queue.

Please advice.

former_member192343
Active Contributor
0 Kudos

How does your payload look like?

how does your file look like?
how does your source structure in ESR look like?

check wether payload structure corresponds to source structure of ESR.

suman_saha
Contributor
0 Kudos

Hi,

Do other fields have value? May be no field is having value. Please check in display queue and tell.

Suman

Harish
Active Contributor
0 Kudos

Hi Dipen,

The error is for field BSART (which is not available in source). Please check the display queue for field BSART.

suman_saha
Contributor
0 Kudos

If so, check Document name (should be the name of the message type), recordset name and recordset structure.

dipen_pandya
Contributor
0 Kudos

Hi,

Document name is already a Message type & Recordset structure name is Datatype.

Other fields also do not have a value.

????

dipen_pandya
Contributor
0 Kudos

Hi Harish,

Display queue for BSART is having no value.

The BSART field is available in the source.

What may be the cause?

suman_saha
Contributor
0 Kudos

recordset structure should be DT_ZPO_UPLOAD,1

suman_saha
Contributor
0 Kudos

The problem surely is with your FCC

Make sure recordset structure is  DT_ZPO_UPLOAD,1

dipen_pandya
Contributor
0 Kudos

Hi,

Yes source structure is corresponding to the payload.

suman_saha
Contributor
0 Kudos

Also use ignoreRecordsetName = TRUE in your parameter

dipen_pandya
Contributor
0 Kudos

I made is like DT_ZPO_UPLOAD,*



should i change * to 1?

suman_saha
Contributor
0 Kudos

The max occurrence is 1, so you may use 1 instead of *

azharshaikh
Active Contributor
0 Kudos

Hi Dipen,

Seems that there is issue with the Structure that you have defined for Source in ESR. As per the Config that you pasted abv, I am not able to find DT_ZPO_UPLOAD node in your Message Type Structure.

I suggest you to do the following:

1. Update your Data Type Structure --> Add 1 level of Hierarchy in it (Record) and move the fields under it.

2. Update your FCC config as follows (See the attached Screenshot)

3. Your Message Type (MT_ZPO_UPLOAD) will reference your DT.

4. In your FCC Config: (screenshot attached)

DT_ZPO_UPLOAD.endSeparator'nl'
DT_ZPO_UPLOAD.fieldNamesBSART,LIFNR,EKORG,EKGRP,BUKRS,MATNR,MENGE,MEINS,NETPR,WAERS,WERKS,MWSKZ

DT_ZPO_UPLOAD.additionalLastFields    ignore

DT_ZPO_UPLOAD.missingLastFieldsignore

DT_ZPO_UPLOAD.keepIncompleteFields    Yes

DT_ZPO_UPLOAD.fieldSeparator,

Replace all DT_ZPO_UPLOAD with Record

eg:

Record.endSeparator 'nl'

Similarily for all

Regards,

Azhar

PeterJonker
Active Contributor
0 Kudos

Shouldn't that be MT_ZPO_UPLOAD ??

Former Member
0 Kudos

Hi Dipen,

Check the namespace and the Content Conversion parameters in your sender communication channel. The error that you are receiving is generally received when the namespace of the sender msg type (in the interface obj) is different from the namespace that you have put in the FCC parameters in the communication channel.

If the namespace is correct, then copy the payload from and paste it in the msg mapping in test mode and check.

Regards,

-Partha