Thursday, June 26, 2014

Common Mistakes : Oracle XML Gateway Map Development

TroubleShooting is a very tiresome task in XML Gateway.
You can reduce much of the effort by being careful about the below most common mistakes in XML Gateway

1) For Inbound Transaction Make sure the Source Definition conforms to the DTD Structure
For example , DTD expects the elements as NAME* AGE* and during the XML Gateway
 source definition we have them as <AGE><NAME>.
 This wont be a reflected as an error but the database fields mapped to them will
 have no values after the XML message is processed

2) ORA-06502 Ecx_actions.bind_proc_variable
This error most commonly occurs when there is a mismatch between database procedure parameters           and Execute Procedure Action in XML Gateway Map. Verify if there is no mismatch.
No null are being passed to not null parameters.

If you have changed the procedure parameters recently. Make sure you redefine EXECUTE                        PROCEDURE action again in the Maps

3) ORA-06502: PL/SQL: numeric or value error: NULL index table key value – ECX_ACTIONS.GET_VAR_ATTR
This happens when a action does not have a variable or value attached to it.
Most common mistake. You attached a variable to action. You later realise you do not need a variable         and delete it. The result of which is you have an action but no variable in it. You will thereby receive the         above error.

4) Changes not reflecting ?? No matter what you do error is not resolved and you are pretty sure you did it       right

Always, BIG Always, Always delete your MAP before you Load modified Map. I have been stuck for        days just because I did not delete the map and load the map again.

Also make sure you delete a map with a map name as parameter. You load a map with a file name as parameter.
Also  make sure while loading the map you are in the directory which contains the .xgm map file.

Recheck the commands below

Delete Map
java oracle.apps.ecx.loader.DeleteMap apps apps_pass XX_PAYLOAD_MAP

Load Map
java oracle.apps.ecx.loader.LoadMap apps apps_pass XX_PAYLOAD_MAP.xgm

5) You can use the below query for error messges

SELECT il.error_id,
WHERE il.error_id         = er.error_id(+)
       AND il.MSGID              = dl.msgid(+)
  AND dl.transaction_type   = &p_transaction_type
  AND dl.transaction_subtype= &p_tran_subtype
  AND il.status            IN (1,2)
  AND dl.time_stamp         > to_date('17-JUN-14','DD-MON_YY')
  ORDER BY il.time_stamp ASC;

6) If non of the above helps you can refer to the docs below

783908.1 : XML Gateway Debugging in R12
742588.1 : XML Gateway Data Collection Script for Inbound ECX Transactions.


Post a Comment