You are on page 1of 4

Error While Calling SAP RFC

What is RFC?
RFC stands for Remote Function Call. It is a custom coded function that resides on SAP box and can be called via BAPI transformation in Informatica mapping.

What is this Page?


This page is to record various errors encountered while calling SAP RFC. Documentation here is aimed to help developers and support team to understand and fix the issues related to SAP RFC failures especially in certain cases where error thrown by Informatica is not descriptive enough. Case 1 - Issue related to field data type - I Issue: Following RFC field I_DAYS had datatype I, and Informatica doesn't support I datatypes while importing RFC using BAPI transformation. Hence Informatica converted the precision of the particular field as 1 by default and thus at run time it created a mismatch between Informatica definition and SAP definition of RFC. To view the RFC definition - Please log in to SAP sytem, run SE37 transaction, enter RFC name and click on display. Informatica Error:
ERROR: "FATAL ERROR : An unexpected condition occurred in file [/export/home/build_root/861HotFix_build/eBiz/dsai/sapbapi/SapBAPIDsai/src/BA PIObject.cpp] line [728]. Aborting the DTM process..." while executing BAPI in PowerCenter

The failure also generated core file, and following is the stack trace.
#0 0x000000301b20c38e in raise () from /lib64/tls/libpthread.so.0 #1 0x0000002a96fdfef6 in skgesigOSCrash () from /opt/oracle/product/11.2/lib/libclntsh.so #2 0x0000002a9727df49 in kpeDbgSignalHandler () from /opt/oracle/product/11.2/lib/libclntsh.so #3 0x0000002a96fe0106 in skgesig_sigactionHandler () from /opt/oracle/product/11.2/lib/libclntsh.so #4 <signal handler called> #5 0x000000301a92e21d in raise () from /lib64/tls/libc.so.6 #6 0x000000301a92fa1e in abort () from /lib64/tls/libc.so.6 #7 0x0000002a98e53409 in PmAbortProcess () from /informatica/PowerCenter8.6.1/server/bin/libpmuti.so #8 0x00000000005acf5b in DTMAssertHandler () #9 0x0000002aa24da0ab in BAPIObject::insertColumnForExportParam ()

from /informatica/PowerCenter8.6.1/server/bin/libpmsapbapidsai.so #10 0x0000002aa24c7273 in BAPITgtNodeVisitor::putFieldData () from /informatica/PowerCenter8.6.1/server/bin/libpmsapbapidsai.so #11 0x0000002aa292518f in TestBTreeVisitor::readFieldData () from /informatica/PowerCenter8.6.1/server/bin/libpmpccl.so #12 0x0000002aa25fe416 in IBTreeDriver::buildMessage () from /informatica/PowerCenter8.6.1/server/bin/libpmimghierbtree.so #13 0x0000002aa25fedb8 in IBTreeIntVisitor::visitBtreeNode () from /informatica/PowerCenter8.6.1/server/bin/libpmimghierbtree.so #14 0x0000002aa0f56433 in IMGBTreeVisitor::visit () from /informatica/PowerCenter8.6.1/server/bin/libpmimgbtree.so #15 0x000000000064099e in PmBPlusTree<PmRwBtreeCtrlTi>::depthFirst () #16 0x0000000000640aa4 in PmBPlusTree<PmRwBtreeCtrlTi>::depthFirst () #17 0x0000000000640bc9 in PmBPlusTree<PmRwBtreeCtrlTi>::traverse () #18 0x0000002aa25fb971 in IBTreeDriver::restoreData () from /informatica/PowerCenter8.6.1/server/bin/libpmimghierbtree.so #19 0x0000002aa2924d67 in GenericAPICallPartitionDriver::eofNotification () from /informatica/PowerCenter8.6.1/server/bin/libpmpccl.so #20 0x00000000008676a6 in SMGEPWidget::HandleEof () #21 0x000000000081bbe0 in SWidget::Eof () #22 0x000000000081be94 in SWidget::Eof () #23 0x00000000007c86bb in TLeafExchangeWidget::PushSegment () #24 0x000000000079ba5b in STransformationRunnable::processOneBlk () #25 0x000000000079c3c2 in STransformationRunnable::run () #26 0x000000000079c535 in STransformationRunnable::handleRequest () #27 0x00000000005fef44 in SWorker::run () #28 0x00000000005d698d in SDTMRunnable::MainEntryPoint ()

Solution: Changed the data type of field I_DAYS from type I to Character, and re-import RFC in Informatica mapping.

Case 2 - Issue related to date data type - SY-DATUM Issue: RFC had one of the date field having data type as ERDAT. SY-DATUM is an internal variable defined in SAP sytem, hence Informatica can not identify the datatype of this field.

Informatica Error:
BAPI_99114 : [INFO] Successfully called the RFC function [BAPI_TEST] corresponding to IntegrationID = [ABCD201112345123456-1]. FATAL : (11513 | ) : (IS | Integration_Service) : node01 : : *********** FATAL ERROR : Caught a fatal signal or exception. ***********

FATAL : (11513 | ) : (IS ERROR : Aborting the DTM *********** FATAL : (11513 | ) : (IS ERROR : Signal Received:

| Integration_Service) : node01 : : *********** FATAL process due to fatal signal or exception. | Integration_Service) : node01 : : *********** FATAL SIGSEGV (11) ***********

The failure also generated core file, and following is the stack trace.
#1 0x0000002a96fdfef6 in skgesigOSCrash () from /opt/oracle/product/11.2/lib/libclntsh.so #2 0x0000002a9727df49 in kpeDbgSignalHandler () from /opt/oracle/product/11.2/lib/libclntsh.so #3 0x0000002a96fe0106 in skgesig_sigactionHandler () from /opt/oracle/product/11.2/lib/libclntsh.so #4 <signal handler called> #5 0x000000314ea2e21d in raise () from /lib64/tls/libc.so.6 #6 0x000000314ea2fa1e in abort () from /lib64/tls/libc.so.6 #7 0x0000002a98e53409 in PmAbortProcess () from /informatica/PowerCenter8.6.1/server/bin/libpmuti.so #8 0x00000000005ad0fd in fatalSignalHandler () #9 <signal handler called> #10 0x0000000000000000 in ?? () #11 0x0000002aa23d46ac in BAPIObject::setOutputDataForReceiver () from /informatica/PowerCenter8.6.1/server/bin/libpmsapbapidsai.so #12 0x0000002aa23d4c09 in BAPIObject::outputColumnForImportParam () from /informatica/PowerCenter8.6.1/server/bin/libpmsapbapidsai.so #13 0x0000002aa23c1a79 in BAPISrcNodeVisitor::getFieldData () from /informatica/PowerCenter8.6.1/server/bin/libpmsapbapidsai.so #14 0x0000002aa2824315 in TestBTreeVisitor::endOfObject () from /informatica/PowerCenter8.6.1/server/bin/libpmpccl.so #15 0x0000002aa24f9d51 in IBTreeIntVisitor::visitBtreeNode () from /informatica/PowerCenter8.6.1/server/bin/libpmimghierbtree.so #16 0x0000002aa0f56433 in IMGBTreeVisitor::visit () from /informatica/PowerCenter8.6.1/server/bin/libpmimgbtree.so #17 0x000000000064099e in PmBPlusTree<PmRwBtreeCtrlTi>::depthFirst () #18 0x0000000000640bc9 in PmBPlusTree<PmRwBtreeCtrlTi>::traverse () #19 0x0000002aa24f6971 in IBTreeDriver::restoreData () from /informatica/PowerCenter8.6.1/server/bin/libpmimghierbtree.so #20 0x0000002aa281fd67 in GenericAPICallPartitionDriver::eofNotification () from /informatica/PowerCenter8.6.1/server/bin/libpmpccl.so #21 0x00000000008676a6 in SMGEPWidget::HandleEof () #22 0x000000000081bbe0 in SWidget::Eof () #23 0x000000000081be94 in SWidget::Eof () #24 0x00000000007c86bb in TLeafExchangeWidget::PushSegment () #25 0x000000000079ba5b in STransformationRunnable::processOneBlk () #26 0x000000000079c3c2 in STransformationRunnable::run () #27 0x000000000079c535 in STransformationRunnable::handleRequest () #28 0x00000000005fef44 in SWorker::run () #29 0x00000000005d698d in SDTMRunnable::MainEntryPoint () #30 0x0000002a97dc588a in runit () from /informatica/PowerCenter8.6.1/server/bin/libpmcef.so #31 0x000000314f306137 in start_thread () from /lib64/tls/libpthread.so.0 #32 0x000000314eac7113 in clone () from /lib64/tls/libc.so.6

Solution:

Update BAPI to use the explicit date data types such as ERDAT instead of sy-datum and reimport the updated BAPI into PowerCenter Designer.

You might also like