Issue with the RFC function module - parameters

Hi,
    When i am creating RFC enabled function module, it was throwing an error like <b>'Reference parameters are not allowed with RFC'.</b>. I am implementing the test scenario to create BAPI, for that i have created table with 2 fields. My main intension is through RFC enabled function module planning to update the ztable.
   When i was creating RFC enabled function module, it was giving error. I remembered that  i need to use new structure when i create RFC enabled function module, so even i created structure also with the same fields of table fields.
   can you please let me know the solution for this.
Thanks
jaya

Hi Ferry,
    Your solution is perfect. can you please explain the below information...
Call by value                                                                               
You pass the parameter with values. This means that the parameter     
     contents are copied both when the parameter is passed and when it is  
     transferred back to the calling parameter. For structures that contain
     tables, performance may be reduced considerably. Therefore, you should
     not do this.                                                                               
I created the parameters with reference to table-fields, what do you mean by 'Call by value'check box usage there.
Is it mean ...if i change the contents of the field in FM will it pass back to the structure which i refered to this parameter, in this case its table-field.
Thanks
jaya

Similar Messages

  • Where should i call the rfc function module? in xi or in r/3

    where should i call the rfc function module?
    for the synch scenario: file < -- >  xi <---> rfc
    i know the type of rfc is tcp/ip; but i'm not sure with the followings,
    and with some trials i can not even see any message via rwb even all the setting
    can be activated without errors.
    where should i create the rfc destination? in r/3 or xi
    where should i call the rfc via abap program? in r/3 or xi
    i guess the calling program should belong to the different server with the rfc itself....
    so confused....
    Thanks for your reply!!
    Jun

    if i create the destination in xi point to r/3, then i call the rfc use the destination in r/3 right ?
    The call doesnt use the destination in R3. XI has the RFC destination which is just used to connect to the R3 system
    but where i need to create the fm via se37? in xi or r/3 ?
    In R3
    Regards,
    Prateek

  • Unable to find the RFC function module in the impoting list in IR

    HI
    I am trying to import a RFC function module from the R/3 system.
    I am not able to find the RFC in the list that comes for the RFC  function modules that can be imported.
    The RFC is present in the destination system and is actiated too
    If anyone has and idea why is such a thing happning
    Regards
    Nikhil

    Hi Nikhil,
    The Checklist,
    1. Check the connection parameter at XI
    2. Make sure ur function module is remote enabled
    3. Make sure ur RFC exists for the same user, client credentials
    Regards,
    Prateek

  • Issue with Delta in Function Module

    Hi Team,
    I have an issue with delta in Genric extraction using function module.Full load is working fine and i have taken post_date as delta field.plz chk the code if any delta related statements are missing.
    FUNCTION ZRSAX_BIW_MANGEMENT_RAT .
    ""Local interface:
    *"  IMPORTING
    *"     VALUE(I_REQUNR) TYPE  SRSC_S_IF_SIMPLE-REQUNR
    *"     VALUE(I_DSOURCE) TYPE  SRSC_S_IF_SIMPLE-DSOURCE OPTIONAL
    *"     VALUE(I_MAXSIZE) TYPE  SRSC_S_IF_SIMPLE-MAXSIZE OPTIONAL
    *"     VALUE(I_INITFLAG) TYPE  SRSC_S_IF_SIMPLE-INITFLAG OPTIONAL
    *"     VALUE(I_READ_ONLY) TYPE  SRSC_S_IF_SIMPLE-READONLY OPTIONAL
    *"  TABLES
    *"      I_T_SELECT TYPE  SRSC_S_IF_SIMPLE-T_SELECT OPTIONAL
    *"      I_T_FIELDS TYPE  SRSC_S_IF_SIMPLE-T_FIELDS OPTIONAL
    *"      E_T_DATA STRUCTURE  ZQMBW_FUJ_MANAGEMENT OPTIONAL
    *"  EXCEPTIONS
    *"      NO_MORE_DATA
    *"      ERROR_PASSED_TO_MESS_HANDLER
    Example: DataSource for table MANAGEMENT RATING
      TABLES: ZQMBW_MANAGEMENT.
    Auxiliary Selection criteria structure
      DATA: L_S_SELECT TYPE SRSC_S_SELECT.
    Maximum number of lines for DB table
      STATICS: S_S_IF TYPE SRSC_S_IF_SIMPLE,
    counter
              S_COUNTER_DATAPAKID LIKE SY-TABIX,
    cursor
              S_CURSOR TYPE CURSOR.
      RANGES: POST_DATE FOR ZMMTVEND_RATING-POST_DATE,
              VENDOR FOR ZMMTVEND_RATING-VENDOR.
    Initialization mode (first call by SAPI) or data transfer mode
    (following calls) ?
      IF I_INITFLAG = SBIWA_C_FLAG_ON.
    Initialization: check input parameters
                    buffer input parameters
                    prepare data selection
    Check DataSource validity
        CASE I_DSOURCE.
          WHEN 'ZQMMANAGEMENT_DS'.
          WHEN OTHERS.
            IF 1 = 2. MESSAGE E009(R3). ENDIF.
    this is a typical log call. Please write every error message like this
            LOG_WRITE 'E'                  "message type
                      'R3'                 "message class
                      '009'                "message number
                      I_DSOURCE   "message variable 1
                      ' '.                 "message variable 2
            RAISE ERROR_PASSED_TO_MESS_HANDLER.
        ENDCASE.
        APPEND LINES OF I_T_SELECT TO S_S_IF-T_SELECT.
    Fill parameter buffer for data extraction calls
        S_S_IF-REQUNR    = I_REQUNR.
        S_S_IF-DSOURCE = I_DSOURCE.
        S_S_IF-MAXSIZE   = I_MAXSIZE.
    Fill field list table for an optimized select statement
    (in case that there is no 1:1 relation between InfoSource fields
    and database table fields this may be far from beeing trivial)
        APPEND LINES OF I_T_FIELDS TO S_S_IF-T_FIELDS.
      ELSE.                 "Initialization mode or data extraction ?
        IF S_COUNTER_DATAPAKID = 0.
    Fill range tables BW will only pass down simple selection criteria
    of the type SIGN = 'I' and OPTION = 'EQ' or OPTION = 'BT'.
          LOOP AT S_S_IF-T_SELECT INTO L_S_SELECT WHERE FIELDNM = 'VENDOR'.
            MOVE-CORRESPONDING L_S_SELECT TO VENDOR.
            CALL FUNCTION 'CONVERSION_EXIT_ALPHA_INPUT'
              EXPORTING
                INPUT  = VENDOR-LOW
              IMPORTING
                OUTPUT = VENDOR-LOW.
            CALL FUNCTION 'CONVERSION_EXIT_ALPHA_INPUT'
              EXPORTING
                INPUT  = VENDOR-HIGH
              IMPORTING
                OUTPUT = VENDOR-HIGH.
            APPEND VENDOR.
          ENDLOOP.
          LOOP AT S_S_IF-T_SELECT INTO L_S_SELECT WHERE FIELDNM = 'POST_DATE'.
            MOVE-CORRESPONDING L_S_SELECT TO POST_DATE.
            CONCATENATE L_S_SELECT-LOW6(4)  L_S_SELECT-LOW3(2) L_S_SELECT-LOW+0(2) INTO POST_DATE-LOW.
            CONCATENATE L_S_SELECT-HIGH6(4)  L_S_SELECT-HIGH3(2) L_S_SELECT-HIGH+0(2) INTO POST_DATE-HIGH.
            APPEND POST_DATE.
          ENDLOOP.
    **Get Management rating details
          OPEN CURSOR WITH HOLD S_CURSOR FOR
          SELECT VENDOR POST_DATE OVERALL_MNGT_RAT OVERALL_DEV_RAT FROM ZMMTVEND_RATING WHERE VENDOR IN VENDOR AND POST_DATE IN POST_DATE .
        ENDIF.
    Fetch records into interface table.
        FETCH NEXT CURSOR S_CURSOR
                   APPENDING CORRESPONDING FIELDS
                   OF TABLE E_T_DATA
                   PACKAGE SIZE S_S_IF-MAXSIZE.
        S_COUNTER_DATAPAKID = S_COUNTER_DATAPAKID + 1.
        IF SY-SUBRC <> 0.
          CLOSE CURSOR S_CURSOR.
          RAISE NO_MORE_DATA.
        ENDIF.
      ENDIF.              "Initialization mode or data extraction ?
    ENDFUNCTION.

    Hi
    Check URLs:
    How to populate the ranges using FM for the SELECTs
    Re: Generic Delta Function Module

  • Regarding the RFC Function Module call from PI

    Hi All,
    I am working on one File to RFC interface, in which File adapter picks the file, this file data has to goto  2 function modules in SAP system. For this i added 2 Inbound interfaces in INTERFACE DETERMINATION and I developed 2 RECEIVER AGREEMENTS. In 2 RECEIVER AGREEMENTS i added single receiver RFC Communication Channel.
    Now i want assurance that once 1 st function module will execute completely, then only my second function module should be called. Is there any setting that i can do to make this sync?????.
    what is the use of  Send 'Confirm Transaction' in receiver RFC Communication Channel under Adavanced Mode.
    Thanks,
    Balu

    Hi,
    As per you requirement I would suggest to change your scenario as File To Proxy. It will much more easier and 100% sure to process second BAPI only after first gets successful inside the proxy.
    Pass the data from file adapter to inbound proxy and then inside proxy code you first call the first BAPI and use commit wrok. Once commit work is successful then you call the second BAPI otherwise rollback the changes.
    Example:
    Call First_BAPI
    <pass the data to it's import export parameters>
    Commit work.
    if sy-subrc =0.
    Call Second_BAPI.
    <pass the data to it's import export parameters>
    Commit work.
    endif.
    Note: If you are not very much comfortable with ABAP the discuss this with your ABAP team mate.
    Regards,
    Sarvesh

  • Issue with use of Function Module GUI_UPLOAD

    Hi Experts,
    I have an issue in using the Function Module GUI_UPLOAD for uploading the contents of an Excel file on the Presentation Server to an internal table in an ABAP Program.
    My file consists of around 300 records but the FM succeeds in uploading only the first 6 lines to the Internal Table specified while calling the FM.
    I dont have any idea why this happens. Any pointers in this direction will be helpful.
    Thanks in advance.
    Regards,
    Keerthi

    Hi,
    Kindly go through this link below:
    https://wiki.sdn.sap.com/wiki/pages/viewpage.action?pageId=60655105
    Hope it helps you
    Regards
    Mansi

  • Xml parsing issue with the existsnode function

    Hi Friends,
    I have a question as like below
    We have the contacts and alternate contacts request as like below.
    <TXLife>
    <UserAuthRequest>
    <UserLoginName>hqtest24</UserLoginName>
    <UserDate>2012-07-11</UserDate>
    <UserTime>12:42:55</UserTime>
    </UserAuthRequest>
    <TXLifeRequest>
    <TransRefGUID>0c95642d-663a-455f-bd92-aca678538986</TransRefGUID>
    <TransType tc="1204">OLI_TRANS_TRNPARTY</TransType>
    <TransExeDate>2012-07-11</TransExeDate>
    <TransExeTime>12:42:55</TransExeTime>
    <InquiryLevel tc="3">OLI_INQUIRY_OBJRELOBJ</InquiryLevel>
    <InquiryView>
    <InquiryViewCode>INTERMEDIARYUPDATE-CHBM-1204A</InquiryViewCode>
    </InquiryView>
    <OLifE>
    <SourceInfo>
    <SourceInfoName>CHBM Admin Tool</SourceInfoName>
    </SourceInfo>
    <Party id="Intermediary1">
    <PartyTypeCode tc="2">OLI_PT_ORG</PartyTypeCode>
    <PartySysKey SystemCode="CHBM">111259</PartySysKey>
    <FullName>Example Law Firm test</FullName>
    <Organization>
    <DBA>Example Law Firm test</DBA>
    </Organization>
    <Address>
    <AddressTypeCode tc="2">OLI_ADTYPE_BUS</AddressTypeCode>
    <Line1>20 Yellow Brick Rd</Line1>
    <Line2>Suite 23</Line2>
    <Line3>line 3</Line3>
    <City>wonderland34</City>
    <AddressState>NY</AddressState>
    <Zip>229292</Zip>
    <AddressCountry>US</AddressCountry>
    </Address>
    <Phone>
    <PhoneTypeCode tc="2">OLI_PHONETYPE_BUS</PhoneTypeCode>
    <DialNumber></DialNumber>
    </Phone>
    <Phone>
    <PhoneTypeCode tc="19">OLI_PHONETYPE_FAX</PhoneTypeCode>
    <DialNumber></DialNumber>
    </Phone>
    <Attachment id="Attachment1">
    <DateCreated>2012-07-11</DateCreated>
    <UserCode>hqtest24</UserCode>
    <AttachmentBasicType tc="1">Text</AttachmentBasicType>
    <AttachmentSource>ATTORNEY</AttachmentSource>
    <Description>INTERMEDIARY TYPE UPDATED</Description>
    <AttachmentData>Attorney</AttachmentData>
    <AttachmentType tc="1009800001">Transaction Log</AttachmentType>
    <AttachmentLocation tc="1">Inline</AttachmentLocation>
    <OLifEExtension VendorCode="0098" ExtensionCode="Attachment">
    <AttachmentExtension>
    <CreationTime>12:42:55</CreationTime>
    <Sequence>1</Sequence>
    </AttachmentExtension>
    </OLifEExtension>
    </Attachment>
    <Attachment id="Attachment2">
    <DateCreated>2012-07-11</DateCreated>
    <UserCode>hqtest24</UserCode>
    <AttachmentBasicType tc="1">Text</AttachmentBasicType>
    <AttachmentSource>James</AttachmentSource>
    <Description>ALTERNATE CONTACT FIRST NAME UPDATED</Description>
    <AttachmentType tc="1009800001">Transaction Log</AttachmentType>
    <AttachmentLocation tc="1">Inline</AttachmentLocation>
    <OLifEExtension VendorCode="0098" ExtensionCode="Attachment">
    <AttachmentExtension>
    <CreationTime>12:42:55</CreationTime>
    <Sequence>2</Sequence>
    </AttachmentExtension>
    </OLifEExtension>
    </Attachment>
    <Attachment id="Attachment3">
    <DateCreated>2012-07-11</DateCreated>
    <UserCode>hqtest24</UserCode>
    <AttachmentBasicType tc="1">Text</AttachmentBasicType>
    <AttachmentSource>Mathew</AttachmentSource>
    <Description>ALTERNATE CONTACT LAST NAME UPDATED</Description>
    <AttachmentType tc="1009800001">Transaction Log</AttachmentType>
    <AttachmentLocation tc="1">Inline</AttachmentLocation>
    <OLifEExtension VendorCode="0098" ExtensionCode="Attachment">
    <AttachmentExtension>
    <CreationTime>12:42:55</CreationTime>
    <Sequence>3</Sequence>
    </AttachmentExtension>
    </OLifEExtension>
    </Attachment>
    <EMailAddress>
    <EMailType tc="1">Business</EMailType>
    <AddrLine></AddrLine>
    </EMailAddress>
    <URL>
    <URLAddr>www.example.com</URLAddr>
    <URLType tc="1">Home Page</URLType>
    </URL>
    </Party>
    <Activity id="Activity1" HoldingID="Intermediary1">
    <UserCode>hqtest24</UserCode>
    <LastUpdate>2012-07-11</LastUpdate>
    <ActivityCode>CHBM10004</ActivityCode>
    <OLifEExtension VendorCode="0098" ExtensionCode="Activity">
    <ActivityExtension>
    <SubActivityCode>CHBM20002</SubActivityCode>
    <LastUpdateTime>12:42:55</LastUpdateTime>
    </ActivityExtension>
    </OLifEExtension>
    </Activity>
    <Party id="Contact1">
    <PartyTypeCode tc="1">OLI_PT_PERSON</PartyTypeCode>
    <PartySysKey>555223</PartySysKey>
    <Person>
    <FirstName>Jack</FirstName>
    <LastName>Scarecrow23</LastName>
    </Person>
    <Phone>
    <PhoneTypeCode tc="2">OLI_PHONETYPE_BUS</PhoneTypeCode>
    <DialNumber>2223993993</DialNumber>
    </Phone>
    <Phone>
    <PhoneTypeCode tc="19">OLI_PHONETYPE_FAX</PhoneTypeCode>
    <DialNumber>2223392020</DialNumber>
    </Phone>
    <EMailAddress>
    <EMailType tc="1">Business</EMailType>
    <AddrLine>[email protected]</AddrLine>
    </EMailAddress>
    </Party>
    <Relation id="Relation1" OriginatingObjectID="Intermediary1" RelatedObjectID="Contact1">
    <RelationRoleCode tc="150">Authorized Person</RelationRoleCode>
    </Relation>
    <Relation id="Relation1" OriginatingObjectID="Intermediary1">
    <RelationRoleCode tc="104">Intermediary</RelationRoleCode>
    <RelationDescription tc="42">Attorney</RelationDescription>
    </Relation>
    <Party id="Contact2">
    <PartyTypeCode tc="1">OLI_PT_PERSON</PartyTypeCode>
    <PartySysKey>556915</PartySysKey>
    <Person>
    <FirstName/>
    <LastName/>
    </Person>
    <Phone>
    <PhoneTypeCode tc="2">OLI_PHONETYPE_BUS</PhoneTypeCode>
    <DialNumber>2343434</DialNumber>
    </Phone>
    <Phone>
    <PhoneTypeCode tc="19">OLI_PHONETYPE_FAX</PhoneTypeCode>
    <DialNumber>45345345</DialNumber>
    </Phone>
    <EMailAddress>
    <EMailType tc="1">Business</EMailType>
    <AddrLine>[email protected]</AddrLine>
    </EMailAddress>
    </Party>
    <Relation id="Relation4" OriginatingObjectID="Intermediary1" RelatedObjectID="Contact2">
    <OriginatingObjectType tc="6">Party</OriginatingObjectType>
    <RelatedObjectType tc="6">Party</RelatedObjectType>
    <RelationRoleCode tc="150">Authorized Person</RelationRoleCode>
    <InterestPercent>-1.0</InterestPercent>
    <Sequence>2</Sequence>
    </Relation>
    </OLifE>
    </TXLifeRequest>
    </TXLife>
    From the above request we have to parse the alternate contact details.
    In the procedure we are using as like below
    FOR b IN (
    SELECT t.vAltCntcity vAltCntcity,
    t.Partysyskey Partysyskey,
    t.vAltCntZip vAltCntZip,
    t.vAltCntGovtID vAltCntGovtID,
    t.vAltCntTelno vAltCntTelno,
    t.vAltCntemailaddr vAltCntemailaddr,
    t.vAltCntstats vAltCntstats,
    t.vAltCntAdd1 vAltCntAdd1,
    t.vAltCntAdd2 vAltCntAdd2,
    t.vAltCntAdd3 vAltCntAdd3,
    t.AltCntstate AltCntstate,
    t.AltCntcntry AltCntcntry,
    t.vAltCntBRTH_DT vAltCntBRTH_DT,
    t.vAltCntGender vAltCntGender,
    t.vAltCntFaxno vAltCntFaxno,
    t.vAltCnturladdr vAltCnturladdr,
    t.AltCntorgFST_NM AltCntorgFST_NM,
    t.AltCntorgLST_NM AltCntorgLST_NM,
    t.AltCntorgMID_NM AltCntorgMID_NM,
    t.AltCntorgPFX_NM AltCntorgPFX_NM,
    t.AltCntorgSUFX_NM AltCntorgSUFX_NM,
    t.AltCntpartytypecode AltCntpartytypecode,
    t.vAltCntdatarep vAltCntdatarep,
    t1.vAltCntInterestPercent vAltCntInterestPercent,
    t1.ROID ROID
    FROM (
    SELECT xData doc FROM dual ) temp_table,
    XMLTable ( '/TXLife/TXLifeRequest/OLifE/Relation[RelationRoleCode/@tc=150][Sequence=2]' passing doc
    COLUMNS OOID varchar2(50) path '@OriginatingObjectID'
    , ROID varchar2(50) path '@RelatedObjectID'
    , vAltCntInterestpercent varchar2(100) path 'InterestPercent'
    )t1,
    XMLTable('/Party[@id=$roid]' passing vAltcnt, t1.roid as "roid"
    COLUMNS
    vAltCntcity VARCHAR2(20) path 'City',
    Partysyskey VARCHAR2(100) path 'PartySysKey',
    vAltCntZip VARCHAR2(20) path 'Address/Zip',
    vAltCntGovtID VARCHAR2(20) path 'GovtID',
    vAltCntTelno VARCHAR2(20) path 'Phone[PhoneTypeCode/@tc=2]/DialNumber',
    vAltCntemailaddr VARCHAR2(200) path 'EMailAddress/AddrLine',
    vAltCntstats varchar2(20) path 'Client/ClientStatus/@tc',
    vAltCntAdd1 varchar2(1000) path 'Address/Line1',
    vAltCntAdd2 varchar2(1000) path 'Address/Line2',
    vAltCntAdd3 varchar2(1000) path 'Address/Line3',
    AltCntstate varchar2(100) path 'Address/AddressState',
    AltCntcntry varchar2(100) path 'Address/AddressCountry',
    vAltCntBRTH_DT date path 'Person/BirthDate',
    vAltCntGender char(1) path 'Person/Gender/@tc',
    vAltCntFaxno varchar2(100) path 'Phone[PhoneTypeCode/@tc=19]/DialNumber',
    vAltCnturladdr varchar2(100) path 'URL/URLAddr',
    AltCntorgFST_NM varchar2(100) path 'Person/FirstName',
    AltCntorgLST_NM varchar2(100) path 'Person/LastName',
    AltCntorgMID_NM varchar2(100) path 'Person/MiddleName',
    AltCntorgPFX_NM varchar2(100) path 'Person/Prefix',
    AltCntorgSUFX_NM varchar2(100) path 'Person/Suffix',
    AltCntpartytypecode varchar2(10) path 'PartyTypeCode/@tc',
    vAltCntdatarep varchar2(100) path '@DataRep'
    ) t
    LOOP
    BEGIN
    SELECT extractvalue(value(t),'/OLifE/Party[@id=/OLifE/Relation[RelationRoleCode/@tc=150][Sequence=2]/b.ROID][PartyTypeCode/@tc=1]/Person/FirstName')
    INTO vAltCntFirstnamechk
    FROM TABLE (XMLSEQUENCE (EXTRACT (xData,'/TXLife/TXLifeRequest/OLifE'))) t
    WHERE existsnode(value(t),'/OLifE/Party[@id=/OLifE/Relation[RelationRoleCode/@tc=150][Sequence=2]/b.ROID][PartyTypeCode/@tc=1]/Person/FirstName') =1;
    EXCEPTION
    WHEN NO_DATA_FOUND THEN
    vAltCntFirstnamechkflag:='Y';
    END;
    BEGIN
    SELECT extractvalue(value(t),'/OLifE/Party[@id=/OLifE/Relation[RelationRoleCode/@tc=150][Sequence=2]/b.ROID][PartyTypeCode/@tc=1]/Person/LastName')
    INTO vAltCntLastNamechk
    FROM TABLE (XMLSEQUENCE (EXTRACT (xData,'/TXLife/TXLifeRequest/OLifE'))) t
    WHERE existsnode(value(t),'/OLifE/Party[@id=/OLifE/Relation[RelationRoleCode/@tc=150][Sequence=2]/b.ROID][PartyTypeCode/@tc=1]/Person/LastName') =1;
    EXCEPTION
    WHEN NO_DATA_FOUND THEN
    vAltCntLastNamechkflag:='Y';
    END;
    END LOOP;
    Here while parsing the data for contact2(with the request provided) by using the above procedure its going to exception.
    If the value is not there between the firstname then it should not go to the exception.
    If the firstname tag is not there it should go to the exception.
    But in the above procedure for the altcntfirstname and altcntlastname selectstatements its going to the exception part when there is no value for firstname(<FirstName></FirstName>).
    Is there any way to resolve this issue?
    Regards,
    Jyothirmai

    Hi Odie,
    In the request more than one alternate contact used to come(that means contact1 is primary contact,contact2 is alternate contact1,contact3 is alternate contact2 etc).
    We are retrieving the RelatedObjectID and named as ROID in the for loop.
    That means in the for loop we are getting the RelatedObjectID,if that RelatedObjectID is equal to party id then that firstname we are checking by using the below select statement.
    suppose when we used as like below in the loop the same RelatedObjectID(contact2) is repeating every time.
    FOR b IN (
    SELECT t.vAltCntcity vAltCntcity,
    t.Partysyskey Partysyskey,
    t.vAltCntZip vAltCntZip,
    t.vAltCntGovtID vAltCntGovtID,
    t.vAltCntTelno vAltCntTelno,
    t.vAltCntemailaddr vAltCntemailaddr,
    t.vAltCntstats vAltCntstats,
    t.vAltCntAdd1 vAltCntAdd1,
    t.vAltCntAdd2 vAltCntAdd2,
    t.vAltCntAdd3 vAltCntAdd3,
    t.AltCntstate AltCntstate,
    t.AltCntcntry AltCntcntry,
    t.vAltCntBRTH_DT vAltCntBRTH_DT,
    t.vAltCntGender vAltCntGender,
    t.vAltCntFaxno vAltCntFaxno,
    t.vAltCnturladdr vAltCnturladdr,
    t.AltCntorgFST_NM AltCntorgFST_NM,
    t.AltCntorgLST_NM AltCntorgLST_NM,
    t.AltCntorgMID_NM AltCntorgMID_NM,
    t.AltCntorgPFX_NM AltCntorgPFX_NM,
    t.AltCntorgSUFX_NM AltCntorgSUFX_NM,
    t.AltCntpartytypecode AltCntpartytypecode,
    t.vAltCntdatarep vAltCntdatarep,
    t1.vAltCntInterestPercent vAltCntInterestPercent,
    t1.ROID ROID
    FROM (
    SELECT xData doc FROM dual ) temp_table,
    XMLTable ( '/TXLife/TXLifeRequest/OLifE/Relation[RelationRoleCode/@tc=150][Sequence=2]' passing doc
    COLUMNS OOID varchar2(50) path '@OriginatingObjectID'
    , ROID varchar2(50) path '@RelatedObjectID'
    , vAltCntInterestpercent varchar2(100) path 'InterestPercent'
    )t1,
    XMLTable('/Party[@id=$roid]' passing vAltcnt, t1.roid as "roid"
    COLUMNS
    vAltCntcity VARCHAR2(20) path 'City',
    Partysyskey VARCHAR2(100) path 'PartySysKey',
    vAltCntZip VARCHAR2(20) path 'Address/Zip',
    vAltCntGovtID VARCHAR2(20) path 'GovtID',
    vAltCntTelno VARCHAR2(20) path 'Phone[PhoneTypeCode/@tc=2]/DialNumber',
    vAltCntemailaddr VARCHAR2(200) path 'EMailAddress/AddrLine',
    vAltCntstats varchar2(20) path 'Client/ClientStatus/@tc',
    vAltCntAdd1 varchar2(1000) path 'Address/Line1',
    vAltCntAdd2 varchar2(1000) path 'Address/Line2',
    vAltCntAdd3 varchar2(1000) path 'Address/Line3',
    AltCntstate varchar2(100) path 'Address/AddressState',
    AltCntcntry varchar2(100) path 'Address/AddressCountry',
    vAltCntBRTH_DT date path 'Person/BirthDate',
    vAltCntGender char(1) path 'Person/Gender/@tc',
    vAltCntFaxno varchar2(100) path 'Phone[PhoneTypeCode/@tc=19]/DialNumber',
    vAltCnturladdr varchar2(100) path 'URL/URLAddr',
    AltCntorgFST_NM varchar2(100) path 'Person/FirstName',
    AltCntorgLST_NM varchar2(100) path 'Person/LastName',
    AltCntorgMID_NM varchar2(100) path 'Person/MiddleName',
    AltCntorgPFX_NM varchar2(100) path 'Person/Prefix',
    AltCntorgSUFX_NM varchar2(100) path 'Person/Suffix',
    AltCntpartytypecode varchar2(10) path 'PartyTypeCode/@tc',
    vAltCntdatarep varchar2(100) path '@DataRep'
    ) t
    LOOP
    BEGIN
    SELECT extractvalue(value(t),'/OLifE/Party[@id=/OLifE/Relation[RelationRoleCode/@tc=150][Sequence=2]/@RelatedObjectID][PartyTypeCode/@tc=1]/Person/FirstName')
    INTO vAltCntFirstnamechk
    FROM TABLE (XMLSEQUENCE (EXTRACT (xData,'/TXLife/TXLifeRequest/OLifE'))) t
    WHERE existsnode(value(t),'/OLifE/Party[@id=/OLifE/Relation[RelationRoleCode/@tc=150][Sequence=2]/@RelatedObjectID][PartyTypeCode/@tc=1]/Person/FirstName') =1;
    EXCEPTION
    WHEN NO_DATA_FOUND THEN
    vAltCntFirstnamechkflag:='Y';
    END;
    end loop;
    For this above code its not going to the exception.we are using this select statement to check whether that node existed or not.
    If that node exists and value is not there, that time we are updating the table with the null value by using the vAltCntFirstnamechkflag value as like below in our procedure.
    IF b.AltCntorgFST_NM IS NOT NULL THEN
    cAltCntpsnUpdateflag:='Y';
    vAltCntpsnupdatequery:=vAltCntpsnupdatequery||' FST_NM ='''||b.AltCntorgFST_NM||''''||',';
    ELSIF vAltCntFirstnamechkflag='N' AND vAltCntFirstnamechk IS NULL THEN
    cAltCntpsnUpdateflag:='Y';
    vAltCntpsnupdatequery:=vAltCntpsnupdatequery||' FST_NM ='''||NULL||''''||',';
    END IF;
    Please find the below procedure what we are using could you please let me know is there any possibility to resolve this issue(if the tag like <firstname></firstname> that
    time also it should not go to the exception).
    CREATE OR REPLACE PROCEDURE CHBM_QA1.PR_CUSTOMERUPDATE(PIN_XML_DATA IN CLOB,po_vResponse OUT clob )
    IS
    xData XMLTYPE:=NULL;
    vActivityCode VARCHAR2(100):=NULL;
    vSubActivityCode VARCHAR2(100):=NULL;
    ncode NUMBER(2):=NULL;
    nErrcode NUMBER(10):=0;
    vInfodesc VARCHAR2(1000):=NULL;
    vStatusinfo VARCHAR2(1000):=NULL;
    vStatus VARCHAR2(100):=NULL;
    vOrgid VARCHAR2(100):=NULL;
    vcity VARCHAR2(100):=NULL;
    vAltCntcity VARCHAR2(20):=NULL;
    vorgcity VARCHAR2(100):=NULL;
    vAddressState VARCHAR2(100):=NULL;
    vZip VARCHAR2(100):=NULL;
    vAltCntZip VARCHAR2(100):=NULL;
    vorgZip VARCHAR2(100):=NULL;
    vGovtID VARCHAR2(100):=NULL;
    vAltCntGovtID VARCHAR2(100):=NULL;
    vorgGovtID VARCHAR2(100):=NULL;
    vFullname VARCHAR2(200):=NULL;
    norgid NUMBER:=0;
    vTelno VARCHAR2(100):=Null;
    vAltCntTelno VARCHAR2(100):=Null;
    vOrgTelno VARCHAR2(100):=null;
    nOrgcnt NUMBER:=0;
    vemailaddr VARCHAR2(200):=null;
    vAltCntemailaddr VARCHAR2(200):=null;
    vorgemailaddr VARCHAR2(200):=null;
    vFISC_YEAR_END_DT VARCHAR2(100);
    vFiscalYearEndMoDaychkflag CHAR(1):='N';
    vFiscalYearEndMoDaychk VARCHAR2(100):=NULL;
    vGovtIDchkflag CHAR(1):='N';
    vGovtIDchk VARCHAR2(100):=NULL;
    vEMailAddresschkflag CHAR(1):='N';
    vEMailAddresschk VARCHAR2(1000):=NULL;
    vDialNumberchkflag CHAR(1):='N';
    vAltCntDialNumberchkflag CHAR(1):='N';
    vDialNumberchk VARCHAR2(100):=NULL;
    vAltCntDialNumberchk VARCHAR2(100):=NULL;
    vFaxnochkflag CHAR(1):='N';
    vAltCntFaxnochkflag CHAR(1):='N';
    vFaxnochk VARCHAR2(100):=NULL;
    vAltCntFaxnochk VARCHAR2(100):=NULL;
    vEMailAddressPchkflag CHAR(1):=NULL;
    vAltCntEMailAddressPchkflag CHAR(1):=NULL;
    vEMailAddressPchk VARCHAR2(200):=NULL;
    vAltCntEMailAddressPchk VARCHAR2(200):=NULL;
    vLastNamechkflag CHAR(1):='N';
    vAltCntLastNamechkflag CHAR(1):='N';
    vFirstNamechkflag CHAR(1):='N';
    vAltCntFirstNamechkflag CHAR(1):='N';
    vTaxidPchkflag CHAR(1):='N';
    vAltCntTaxidPchkflag CHAR(1):='N';
    vBusinessDescchkflag CHAR(1):='N';
    vBusinessDescchk VARCHAR2(2000):=NUll;
    vTaxidPchk VARCHAR2(200):=NULL;
    vAltCntTaxidPchk VARCHAR2(200):=NULL;
    vLastNamechk VARCHAR2(2000):=NULL;
    vAltCntLastNamechk VARCHAR2(2000):=NULL;
    vFirstNamechk VARCHAR2(2000):=NULL;
    vAltCntFirstnamechk VARCHAR2(2000):=NULL;
    vattdate VARCHAR2(50):=NULL;
    dattdate DATE;
    vAdd3Pchkflag CHAR(1):='N';
    vAltCntAdd3Pchkflag CHAR(1):='N';
    vOrgAdd3chkflag CHAR(1):='N';
    vOrgAdd2chkflag CHAR(1):='N';
    vAdd2Pchkflag CHAR(1):='N';
    vAltCntAdd2Pchkflag CHAR(1):='N';
    vOrgAdd3chk VARCHAR2(2000):=NULL;
    vOrgAdd2chk VARCHAR2(2000):=NULL;
    vAdd2Pchk VARCHAR2(2000):=NULL;
    vAltCntAdd2Pchk VARCHAR2(2000):=NULL;
    vAdd3Pchk VARCHAR2(2000):=NULL;
    vAltCntAdd3Pchk VARCHAR2(2000):=NULL;
    nADDR_ID NUMBER:=0;
    cntry VARCHAR2(100):=NULL;
    AltCntcntry VARCHAR2(100):=NULL;
    orgcntry VARCHAR2(100):=NULL;
    vAdd1 VARCHAR2(1000):=NULL;
    vAdd2 VARCHAR2(1000):=NULL;
    vAdd3 VARCHAR2(1000):=NULL;
    vAltCntAdd1 VARCHAR2(1000):=NULL;
    vAltCntAdd2 VARCHAR2(1000):=NULL;
    vAltCntAdd3 VARCHAR2(1000):=NULL;
    vorgAdd1 VARCHAR2(1000):=NULL;
    vorgAdd2 VARCHAR2(1000):=NULL;
    vorgAdd3 VARCHAR2(1000):=NULL;
    state VARCHAR2(100):=NULL;
    AltCntstate VARCHAR2(100):=NULL;
    nptycnt NUMBER:=0;
    orgstate VARCHAR2(100):=NULL;
    vstats VARCHAR2(100):=NULL;
    vAltCntstats VARCHAR2(100):=NULL;
    norgvalue NUMBER:=0;
    nPtyrolCon NUMBER:=0;
    npsnid NUMBER:=0;
    npsn NUMBER:=0;
    dFISC_YEAR_END_DT date:=NULL;
    Gender char(1):=NULL;
    vAltCntGender char(1):=NULL;
    vBRTH_DT VARCHAR2(100):=NULL;
    vAltCntBRTH_DT VARCHAR2(100):=NULL;
    BusinessDesc VARCHAR2(200):=NULL;
    dBRTH_DT date:=NULL;
    dAltCntBRTH_DT date:=NULL;
    prmycnt VARCHAR2(100):=NULL;
    vpsnstats VARCHAR2(100):=NULL;
    vAltCntpsnstats VARCHAR2(100):=NULL;
    vPartySysKey VARCHAR2(100):=NULL;
    vFaxno VARCHAR2(100):=NULL;
    vAltCntFaxno VARCHAR2(100):=NULL;
    vorgFaxno VARCHAR2(100):=NULL;
    nRlplptyid CHBM_PARTY_RELATIONSHIP.ROLE_PLAYR_PRTY_ID%TYPE:=NULL;
    vurladdr VARCHAR2(100):=NULL;
    vAltCnturladdr VARCHAR2(100):=NULL;
    FST_NM VARCHAR2(100):=NULL;
    orgFST_NM VARCHAR2(100):=NULL;
    AltCntorgFST_NM VARCHAR2(100):=NULL;
    LST_NM VARCHAR2(100):=NULL;
    orgLST_NM VARCHAR2(100):=NULL;
    AltCntorgLST_NM VARCHAR2(100):=NULL;
    MID_NM VARCHAR2(100):=NULL;
    orgMID_NM VARCHAR2(100):=NULL;
    AltCntorgMID_NM VARCHAR2(100):=NULL;
    PFX_NM VARCHAR2(100):=NULL;
    orgPFX_NM VARCHAR2(100):=NULL;
    AltCntorgPFX_NM VARCHAR2(100):=NULL;
    SUFX_NM VARCHAR2(100):=NULL;
    orgSUFX_NM VARCHAR2(100):=NULL;
    AltCntorgSUFX_NM VARCHAR2(100):=NULL;
    naddcnt NUMBER:=0;
    nAltaddcnt NUMBER:=0;
    norgseq NUMBER:=NULL;
    nADDR_IDseq NUMBER:=NULL;
    npsnidseq NUMBER:=NULL;
    nAltCntpsnidseq NUMBER:=NULL;
    vTransrefguid VARCHAR2(1000):=NULL;
    nRecfound NUMBER:=0;
    partytypecode varchar2(100):=null;
    AltCntpartytypecode varchar2(100):=null;
    RelationRoleCode VARCHAR2(100):=NULL;
    cUpdateflag CHAR(1):='N';
    vupdatequery CLOB:=null;
    plancode varchar2(100):=null;
    usercreated VARCHAR2(200):=null;
    openeddate VARCHAR2(100);
    openedtime varchar2(100);
    vopeneddate VARCHAR2(100);
    dopeneddate date;
    naddrcnt NUMBER:=0;
    ncnt1 number:=0;
    ncnt2 number:=0;
    ncnt3 number:=0;
    ncnt4 number:=0;
    ncnt5 number:=0;
    ncnt6 number:=0;
    nDelCnt1 number:=0;
    nDelCnt2 number:=0;
    nDelCnt3 number:=0;
    nAltcnt4 number:=0;
    nAltcnt5 number:=0;
    nAltcnt6 number:=0;
    nRelcnt NUMBER:=0;
    nAltRelcnt NUMBER:=0;
    ncnt7 NUMBER:=0;
    nprscnt NUMBER:=0;
    nAltprscnt NUMBER:=0;
    nPlncnt NUMBER:=0;
    npsncnt NUMBER:=0;
    vaddupdatequery VARCHAR2(4000);
    caddUpdateflag CHAR(1):='N';
    vaddrupdatequery VARCHAR2(4000);
    vAltCntaddrupdatequery VARCHAR2(4000);
    caddrUpdateflag CHAR(1):='N';
    cAltCntaddrUpdateflag CHAR(1):='N';
    vpsnupdatequery VARCHAR2(4000);
    vAltCntpsnupdatequery VARCHAR2(4000);
    cpsnUpdateflag CHAR(1):='N';
    cAltCntpsnUpdateflag CHAR(1):='N';
    vCntInterestPercent VARCHAR2(200);
    vAltCntInterestPercent VARCHAR2(200);
    vCntdatarep varchar2(100);
    vAltCntdatarep varchar2(100);
    vAltcnt XMLTYPE:=NULL;
    eParsererror EXCEPTION;
    PRAGMA EXCEPTION_INIT(eParsererror,-31011);
    eUniqueexception EXCEPTION;
    PRAGMA EXCEPTION_INIT(eUniqueexception,-00001);
    eplanexception EXCEPTION;
    PRAGMA EXCEPTION_INIT(eplanexception,-02291);
    eEventexception EXCEPTION;
    PRAGMA EXCEPTION_INIT(eEventexception,-01400);
    BEGIN
    BEGIN
    xData := XMLTYPE.createxml(PIN_XML_DATA);
    END;
    BEGIN
    SELECT extractvalue(value(t),'/TXLifeRequest/TransRefGUID')
    INTO vTransrefguid
    FROM TABLE (XMLSEQUENCE (EXTRACT (xData,'/TXLife/TXLifeRequest'))) t
    WHERE existsnode(value(t),'/TXLifeRequest/TransRefGUID')=1
    AND extractvalue(value(t),'/TXLifeRequest/TransRefGUID') IS NOT NULL;
    EXCEPTION
    WHEN NO_DATA_FOUND THEN
    ncode:=5;
    nErrcode:=200;
    vStatus:='FAILURE';
    vStatusinfo:='General Data Error';
    Raise_application_error(-20201,'Transrefguid does not exist');
    END;
    BEGIN
    SELECT t.vActivityCode,
    t.vSubActivityCode
    INTO vActivityCode,
    vSubActivityCode
    FROM (
    SELECT xData doc
    FROM dual
    ) temp_table,
    XMLTable ( '/TXLife/TXLifeRequest/OLifE' passing doc
    COLUMNS
    vActivityCode VARCHAR2(20) path 'Activity/ActivityCode',
    vSubActivityCode VARCHAR2(20) path 'Activity/OLifEExtension/ActivityExtension/SubActivityCode'
    ) t;
    EXCEPTION
    WHEN NO_DATA_FOUND THEN
    ncode:=5;
    nErrcode:=200;
    vStatus:='FAILURE';
    vStatusinfo:='RESULTINFO_DATA ';
    Raise_application_error(-20201,'General Data Error');
    END;
    IF vActivityCode='CHBM10003' AND vSubActivityCode='CHBM20002' THEN
    FOR b IN (
    SELECT t.vAltCntcity vAltCntcity,
    t.Partysyskey Partysyskey,
    t.vAltCntZip vAltCntZip,
    t.vAltCntGovtID vAltCntGovtID,
    t.vAltCntTelno vAltCntTelno,
    t.vAltCntemailaddr vAltCntemailaddr,
    t.vAltCntstats vAltCntstats,
    t.vAltCntAdd1 vAltCntAdd1,
    t.vAltCntAdd2 vAltCntAdd2,
    t.vAltCntAdd3 vAltCntAdd3,
    t.AltCntstate AltCntstate,
    t.AltCntcntry AltCntcntry,
    t.vAltCntBRTH_DT vAltCntBRTH_DT,
    t.vAltCntGender vAltCntGender,
    t.vAltCntFaxno vAltCntFaxno,
    t.vAltCnturladdr vAltCnturladdr,
    t.AltCntorgFST_NM AltCntorgFST_NM,
    t.AltCntorgLST_NM AltCntorgLST_NM,
    t.AltCntorgMID_NM AltCntorgMID_NM,
    t.AltCntorgPFX_NM AltCntorgPFX_NM,
    t.AltCntorgSUFX_NM AltCntorgSUFX_NM,
    t.AltCntpartytypecode AltCntpartytypecode,
    t.vAltCntdatarep vAltCntdatarep,
    t1.vAltCntInterestPercent vAltCntInterestPercent,
    t1.ROID ROID
    FROM (
    SELECT xData doc FROM dual ) temp_table,
    XMLTable ( '/TXLife/TXLifeRequest/OLifE/Relation[RelationRoleCode/@tc=150][Sequence=2]' passing doc
    COLUMNS OOID varchar2(50) path '@OriginatingObjectID'
    , ROID varchar2(50) path '@RelatedObjectID'
    , vAltCntInterestpercent varchar2(100) path 'InterestPercent'
    )t1,
    XMLTable('/Party[@id=$roid]' passing vAltcnt, t1.roid as "roid"
    COLUMNS
    vAltCntcity VARCHAR2(20) path 'City',
    Partysyskey VARCHAR2(100) path 'PartySysKey',
    vAltCntZip VARCHAR2(20) path 'Address/Zip',
    vAltCntGovtID VARCHAR2(20) path 'GovtID',
    vAltCntTelno VARCHAR2(20) path 'Phone[PhoneTypeCode/@tc=2]/DialNumber',
    vAltCntemailaddr VARCHAR2(200) path 'EMailAddress/AddrLine',
    vAltCntstats varchar2(20) path 'Client/ClientStatus/@tc',
    vAltCntAdd1 varchar2(1000) path 'Address/Line1',
    vAltCntAdd2 varchar2(1000) path 'Address/Line2',
    vAltCntAdd3 varchar2(1000) path 'Address/Line3',
    AltCntstate varchar2(100) path 'Address/AddressState',
    AltCntcntry varchar2(100) path 'Address/AddressCountry',
    vAltCntBRTH_DT date path 'Person/BirthDate',
    vAltCntGender char(1) path 'Person/Gender/@tc',
    vAltCntFaxno varchar2(100) path 'Phone[PhoneTypeCode/@tc=19]/DialNumber',
    vAltCnturladdr varchar2(100) path 'URL/URLAddr',
    AltCntorgFST_NM varchar2(100) path 'Person/FirstName',
    AltCntorgLST_NM varchar2(100) path 'Person/LastName',
    AltCntorgMID_NM varchar2(100) path 'Person/MiddleName',
    AltCntorgPFX_NM varchar2(100) path 'Person/Prefix',
    AltCntorgSUFX_NM varchar2(100) path 'Person/Suffix',
    AltCntpartytypecode varchar2(10) path 'PartyTypeCode/@tc',
    vAltCntdatarep varchar2(100) path '@DataRep'
    ) t
    LOOP
    IF b.vAltCntBRTH_DT IS NOT NULL THEN
    dAltCntBRTH_DT:=to_date(b.vAltCntBRTH_DT,'yyyy-mm-dd');
    END IF;
    IF b.vAltCntdatarep != 'Removed' OR b.vAltCntdatarep IS NULL THEN
    BEGIN
    --------------Starting of CHBM_PERSON Table---------
    IF b.vAltCntstats IS NOT NULL THEN
    BEGIN
    SELECT code_val_cd
    INTO vAltCntpsnstats
    FROM chbm_code_reference
    WHERE tbl_nm='CHBM_PERSON'
    AND col_nm='STAT_CD'
    AND acord_cd =b.vAltCntstats;
    EXCEPTION
    WHEN OTHERS THEN
    ncode :=5;
    nErrcode :=2001;
    vStatus :='FAILURE';
    vStatusinfo :='RESULTINFO_DATA ';
    vInfodesc :='Person status details are not available in code reference';
    Raise_application_error(-20201,'Person status details are not available in code reference');
    END;
    END IF;
    BEGIN
    SELECT extractvalue(value(t),'/OLifE/Party[@id=/OLifE/Relation[RelationRoleCode/@tc=150][Sequence=2]/b.ROID][PartyTypeCode/@tc=1]/Phone[PhoneTypeCode/@tc=2]/DialNumber')
    INTO vAltCntDialNumberchk
    FROM TABLE (XMLSEQUENCE (EXTRACT (xData,'/TXLife/TXLifeRequest/OLifE'))) t
    WHERE existsnode(value(t),'/OLifE/Party[@id=/OLifE/Relation[RelationRoleCode/@tc=150][Sequence=2]/b.ROID][PartyTypeCode/@tc=1]/Phone[PhoneTypeCode/@tc=2]/DialNumber') =1;
    EXCEPTION
    WHEN NO_DATA_FOUND THEN
    vAltCntDialNumberchkflag:='Y';
    END;
    BEGIN
    SELECT extractvalue(value(t),'/OLifE/Party[@id=/OLifE/Relation[RelationRoleCode/@tc=150][Sequence=2]/b.ROID][PartyTypeCode/@tc=1]/Phone[PhoneTypeCode/@tc=19]/DialNumber')
    INTO vAltCntFaxnochk
    FROM TABLE (XMLSEQUENCE (EXTRACT (xData,'/TXLife/TXLifeRequest/OLifE'))) t
    WHERE existsnode(value(t),'/OLifE/Party[@id=/OLifE/Relation[RelationRoleCode/@tc=150][Sequence=2]/b.ROID][PartyTypeCode/@tc=1]/Phone[PhoneTypeCode/@tc=19]/DialNumber') =1;
    EXCEPTION
    WHEN NO_DATA_FOUND THEN
    vAltCntFaxnochkflag:='Y';
    END;
    BEGIN
    SELECT extractvalue(value(t),'/OLifE/Party[@id=/OLifE/Relation[RelationRoleCode/@tc=150][Sequence=2]/b.ROID][PartyTypeCode/@tc=1]/Person/FirstName')
    INTO vAltCntFirstnamechk
    FROM TABLE (XMLSEQUENCE (EXTRACT (xData,'/TXLife/TXLifeRequest/OLifE'))) t
    WHERE existsnode(value(t),'/OLifE/Party[@id=/OLifE/Relation[RelationRoleCode/@tc=150][Sequence=2]/b.ROID][PartyTypeCode/@tc=1]/Person/FirstName') =1;
    EXCEPTION
    WHEN NO_DATA_FOUND THEN
    vAltCntFirstnamechkflag:='Y';
    END;
    BEGIN
    SELECT extractvalue(value(t),'/OLifE/Party[@id=/OLifE/Relation[RelationRoleCode/@tc=150][Sequence=2]/b.ROID][PartyTypeCode/@tc=1]/Person/LastName')
    INTO vAltCntLastNamechk
    FROM TABLE (XMLSEQUENCE (EXTRACT (xData,'/TXLife/TXLifeRequest/OLifE'))) t
    WHERE existsnode(value(t),'/OLifE/Party[@id=/OLifE/Relation[RelationRoleCode/@tc=150][Sequence=2]/b.ROID][PartyTypeCode/@tc=1]/Person/LastName') =1;
    EXCEPTION
    WHEN NO_DATA_FOUND THEN
    vAltCntLastNamechkflag:='Y';
    END;
    BEGIN
    SELECT extractvalue(value(t),'/OLifE/Party[@id=/OLifE/Relation[RelationRoleCode/@tc=150][Sequence=2]/b.ROID][PartyTypeCode/@tc=1]/EMailAddress/AddrLine')
    INTO vAltCntEMailAddressPchk
    FROM TABLE (XMLSEQUENCE (EXTRACT (xData,'/TXLife/TXLifeRequest/OLifE'))) t
    WHERE existsnode(value(t),'/OLifE/Party[@id=/OLifE/Relation[RelationRoleCode/@tc=150][Sequence=2]/b.ROID][PartyTypeCode/@tc=1]/EMailAddress/AddrLine') =1;
    EXCEPTION
    WHEN NO_DATA_FOUND THEN
    vAltCntEMailAddressPchkflag:='Y';
    END;
    BEGIN
    SELECT extractvalue(value(t),'/OLifE/Party[@id=/OLifE/Relation[RelationRoleCode/@tc=150][Sequence=2]/b.ROID][PartyTypeCode/@tc=1]/GovtID')
    INTO vAltCntTaxidPchk
    FROM TABLE (XMLSEQUENCE (EXTRACT (xData,'/TXLife/TXLifeRequest/OLifE'))) t
    WHERE existsnode(value(t),'/OLifE/Party[@id=/OLifE/Relation[RelationRoleCode/@tc=150][Sequence=2]/b.ROID][PartyTypeCode/@tc=1]/GovtID') =1;
    EXCEPTION
    WHEN NO_DATA_FOUND THEN
    vAltCntTaxidPchkflag:='Y';
    END;
    IF b.Partysyskey IS NOT NULL THEN
    nAltCntpsnidseq:=b.Partysyskey;
    vAltCntpsnupdatequery:=vAltCntpsnupdatequery||'UPDATE CHBM_PERSON SET';
    IF dAltCntBRTH_DT IS NOT NULL THEN
    cAltCntpsnUpdateflag:='Y';
    vAltCntpsnupdatequery:=vAltCntpsnupdatequery||' brth_dt ='''||dAltCntBRTH_DT||''''||',';
    END IF;
    IF b.vAltCntGender IS NOT NULL THEN
    cAltCntpsnUpdateflag:='Y';
    vAltCntpsnupdatequery:=vAltCntpsnupdatequery||' GEND_CD ='''||b.vAltCntGender||''''||',';
    END IF;
    IF b.vAltCntGovtID IS NOT NULL THEN
    cAltCntpsnUpdateflag:='Y';
    vAltCntpsnupdatequery:=vAltCntpsnupdatequery||' TAX_ID ='''||b.vAltCntGovtID||''''||',';
    ELSIF vAltCntTaxidPchkflag='N' AND vAltCntTaxidPchk IS NULL THEN
    cAltCntpsnUpdateflag:='Y';
    vAltCntpsnupdatequery:=vAltCntpsnupdatequery||' TAX_ID ='''||NULL||''''||',';
    END IF;
    IF b.vAltCntTelno IS NOT NULL THEN
    cAltCntpsnUpdateflag:='Y';
    vAltCntpsnupdatequery:=vAltCntpsnupdatequery||' TEL_NO ='''||b.vAltCntTelno||''''||',';
    ELSIF vAltCntDialNumberchkflag='N' AND vAltCntDialNumberchk IS NULL THEN
    cAltCntpsnUpdateflag:='Y';
    vAltCntpsnupdatequery:=vAltCntpsnupdatequery||' TEL_NO ='''||NULL||''''||',';
    END IF;
    IF b.vAltCntemailaddr IS NOT NULL THEN
    cAltCntpsnUpdateflag:='Y';
    vAltCntpsnupdatequery:=vAltCntpsnupdatequery||' EMAIL_ADR ='''||b.vAltCntemailaddr||''''||',';
    ELSIF vAltCntEMailAddressPchkflag='N' AND vAltCntEMailAddressPchk IS NULL THEN
    cAltCntpsnUpdateflag:='Y';
    vAltCntpsnupdatequery:=vAltCntpsnupdatequery||' EMAIL_ADR ='''||NULL||''''||',';
    END IF;
    IF b.vAltCntFaxno IS NOT NULL THEN
    cAltCntpsnUpdateflag:='Y';
    vAltCntpsnupdatequery:=vAltCntpsnupdatequery||' FAX_NO ='''||b.vAltCntFaxno||''''||',';
    ELSIF vAltCntFaxnochkflag='N' AND vAltCntFaxnochk IS NULL THEN
    cAltCntpsnUpdateflag:='Y';
    vAltCntpsnupdatequery:=vAltCntpsnupdatequery||' FAX_NO ='''||NULL||''''||',';
    END IF;
    IF vAltCntpsnstats IS NOT NULL THEN
    cAltCntpsnUpdateflag:='Y';
    vAltCntpsnupdatequery:=vAltCntpsnupdatequery||' STAT_CD ='''||vAltCntpsnstats||''''||',';
    END IF;
    IF b.AltCntorgLST_NM IS NOT NULL THEN
    cAltCntpsnUpdateflag:='Y';
    vAltCntpsnupdatequery:=vAltCntpsnupdatequery||' LST_NM ='''||b.AltCntorgLST_NM||''''||',';
    ELSIF vAltCntLastNamechkflag='N' AND vAltCntLastNamechk IS NULL THEN
    cAltCntpsnUpdateflag:='Y';
    vAltCntpsnupdatequery:=vAltCntpsnupdatequery||' LST_NM ='''||NULL||''''||',';
    END IF;
    IF b.AltCntorgFST_NM IS NOT NULL THEN
    cAltCntpsnUpdateflag:='Y';
    vAltCntpsnupdatequery:=vAltCntpsnupdatequery||' FST_NM ='''||b.AltCntorgFST_NM||''''||',';
    ELSIF vAltCntFirstnamechkflag='N' AND vAltCntFirstnamechk IS NULL THEN
    cAltCntpsnUpdateflag:='Y';
    vAltCntpsnupdatequery:=vAltCntpsnupdatequery||' FST_NM ='''||NULL||''''||',';
    END IF;
    IF b.AltCntorgMID_NM IS NOT NULL THEN
    cAltCntpsnUpdateflag:='Y';
    vAltCntpsnupdatequery:=vAltCntpsnupdatequery||' MID_NM ='''||b.AltCntorgMID_NM||''''||',';
    END IF;
    IF b.AltCntorgPFX_NM IS NOT NULL THEN
    cAltCntpsnUpdateflag:='Y';
    vAltCntpsnupdatequery:=vAltCntpsnupdatequery||' PFX_NM ='''||b.AltCntorgPFX_NM||''''||',';
    END IF;
    IF b.AltCntorgSUFX_NM IS NOT NULL THEN
    cAltCntpsnUpdateflag:='Y';
    vAltCntpsnupdatequery:=vAltCntpsnupdatequery||' SUFX_NM ='''||b.AltCntorgSUFX_NM||''''||',';
    END IF;
    IF b.vAltCnturladdr IS NOT NULL THEN
    cAltCntpsnUpdateflag:='Y';
    vAltCntpsnupdatequery:=vAltCntpsnupdatequery||' WEB_SITE_ID ='''||b.vAltCnturladdr||''''||',';
    END IF;
    IF dopeneddate IS NOT NULL THEN
    cAltCntpsnUpdateflag:='Y';
    vAltCntpsnupdatequery:=vAltCntpsnupdatequery||' LST_UPDT_DT ='''||dopeneddate||''''||',';
    END IF;
    IF usercreated IS NOT NULL THEN
    cAltCntpsnUpdateflag:='Y';
    vAltCntpsnupdatequery:=vAltCntpsnupdatequery||' LST_UPDT_BY_USER_ID ='''||usercreated||''''||',';
    END IF;
    vAltCntpsnupdatequery := SUBSTR(vAltCntpsnupdatequery,1,instr(vAltCntpsnupdatequery,',',-1,1)-1);
    vAltCntpsnupdatequery:=vAltCntpsnupdatequery||' WHERE psn_id='''||nAltCntpsnidseq||'''';
    IF cAltCntpsnUpdateflag='Y' THEN
    EXECUTE IMMEDIATE vAltCntpsnupdatequery;
    vAltCntpsnupdatequery := NULL;
    nAltcnt4:=Sql%rowcount;
    END IF;
    END IF;
    END LOOP;
    END IF;
    END;
    Regards,
    Jyothirmai

  • Font size issue with the email functionality of infopath form

    Hi,
    We have a SharePoint list created and customised the form to send the form via email using email functionality in infopath form.
    We have made the font size of the form fields( rich text box) to 11. But it is showing as 10 in email. Also for a text box we set the font size to 14. But it is 13.5 in the email.
    Could anyone please let me know how to fix this issue?

    http://social.technet.microsoft.com/Forums/sharepoint/en-US/afbd9fc3-b8d3-4ef9-a8bf-9cb136d12039/formatting-problem-with-email-from-an-browser-enabled-infopath-2010-form-in-sharepoint-2010?forum=sharepointcustomizationprevious
    Yes, this is normal. Forms Services has to convert the form to an aspx page, and things get lost in translation when this gets submitted via email.  My workaround has always been to set static widths to columns/controls, but you said that didn't work
    for you?  It's always worked for me.
    https://go4answers.webhost4life.com/Example/infopath-send-form-email-162481.aspx
    http://www.formotus.com/15413/blog-infopath/making-the-most-of-email-submit-with-infopath-and-formotus-forms

  • IDOC with ABAP - PI Port , RFC Function module

    Hi ,
    I am creating outbound Idoc in one system,  In the same  system I am using a ABAP - PI port and assigned a RFC function module.
    So when ever the outbound IDOC is created it will go to the port and triggers the RFC function module.
    now my question is how to get the outbound IDOC number in the RFC function module.
    I thought of reading the table EDIDC with message type, but all previous IDOC's aslo coming .
    Regards
    Bhaskar

    Hi Bhaskar, the IDOC control record or records are transfered to your function module in table paramater I_EDIDC. You could read the IDOC data by calling function modules EDI_DOCUMENT_OPEN_FOR_PROCESS and EDI_SEGMENTS_GET_ALL for each control record.
    Regards Jack

  • Facing Problem with RFC Function Module

    Hi,
    I have created an RFC function module to get some data in table format.
    I have run the RFC in original system: It is giving the data.
    However, when I run this in target system, It is not giving any values.
    Could you please let me know, why it happens? I am not sure where I missed out.
    Thanks,
    Sandeep

    HI,
    i hope you are calling the RFC function module in the target system like this
    CALL FUNCTION <FUNC NAME> DESTINATION <DESTINATION NAME> . The destination should be logical system name of the source Logical system .
    Regards,
    Nagaraj

  • Debugging RFC function module from ECC to CRM

    Hi All,
    My requirement is to debug an RFC function module present in CRM(7.0) system from ECC(6.0) system. A report program in ECC will call CRM custom FM. I found many posts in SDN with the same issue and tried to implement suggestions provided there. But I couldn't succeed. The approach I followed is:
    I logged in to ECC report program and kept an external breakpoint just before the function module call.
    I logged in to CRM system, opened the function module and kept an external breakpoint there.
    In both the systems I provided the dialogue userid( id through which I log in to SAPGUI) in the system->settings->debugging option.
    In CRM I activated the external break point in  transaction SRDEBUG.
    Now when I execute the report program in ECC, control stops at the breakpoint. If I press F5 at the function call, control is not going to the external break point set in the CRM FM. I am getting output of FM directly.
    I tried with different settings like turning on the check box for IP matching and session breakpoint active immediate, switching to classic debugger etc. I also tried to provide the RFC user id instead of dialogue user but system throws exception saying only dialogue userids are allowed. I found that by inserting an infinite loop statement, control goes inside the RFC CRM FM but I prefer not to change the code.
    Please let me know if I missed anything.
    Thanks and Regards,
    Naren

    Hi,
    Debug RFC calls
    When an RFC function module is called it is usually not possible to debug the call, using the below techniques we can achieve the same. For this example we are calling an RFC enabled FM in ECC system from CRM system.
    Scenario 1: Calling a custom RFC FM
    STEP 1: Add an infinite loop in the remote custom Function Module (adding a u201CDO. ENDDO.u201D statement at the start of the FM would be enough).
    STEP 2: Execute your program in the CRM system. The execution stops at the RFC call, because of the infinite loop.
    STEP 3: Now login to the ECC system and go to transaction SM51 select the process which is executing the RFC and navigate to the menu: u201CProgram/Session->Program->Debuggingu201D this triggers the debugger session in a separate window.
    Scenario 2: Calling a Standard RFC FM
    When we are debugging a standard program we cannot add the infinite loop, hence we cannot go to SM51 and debug the work process. The RFC destination for the ECC system has a User specified, the RFC function module gets executed using this users credentials. Usually the basis team set up the RFC user as non Dialog user, this does not allow debugging. Contact your Basis team and get this changed to a dialog user enabling you to debug RFC function calls via the normal debugger.
    Note: User name configured in the RFC destination (transaction SM59) 
    Note: User type for the RFC User (transaction SU01D)
    Hope this will be helpful..

  • Get interface of RFC function modules in a remote system

    Hi,
    my goal is to write a report which checks if DDIC structures in two systems fit together when I use RFC`s.
    I have the destination and the name of the RFC.
    Can somebody tell me if I can get a list of the Importing/Exporting Parameters of this RFC? Maybe even with a typedescribtion?
    Thanks for you help.
    Best regards
    Lars
    Edited by: Lars-Eric Biewald  on May 21, 2008 8:39 AM

    Hello ,
    Thank you for your quick help.
    Here I have 3 ECC 6 system .
    1 Central systen
    2 Slave system
    Data will be updated to 2 slave system using RFC function module .
    We've already the SAP address, Client, User name , Password.. of the remote system
    So here how we will create RFC in SM59 to be used in the RFC call ?
    We will transfer the username, password , client in the RFC function module/..
    Here I do not know how to create RFC connection in SM59 and how to use them in ABAP
    Could you please help me ????
    Thanks

  • Rfc function module call error

    Hi Abaper,
    I'm doing upgrade from 4.7 to ecc 6.0 currently and encounter problem in one of the rfc function module that we used. I've tested the connection to destination using sm59 and the connection is successful.
    As an information, in the rfc setting, the target system is not Unicode system.
    When I test using se37 and put the rfc destination in my function module call, I always encountered system_error exception. There's no issue with this rfc call before in 4.7 system.
    Please help me on this. Thank you.
    Edited by: Abraham Bukit on Sep 3, 2008 2:36 AM

    Hi,
    I had the same issue in the past and solved it in the following way.
    If the destination system is not Unicode please try to set the password for the communication user set in SM59 using only upper-case characters and taking into account that the password shouldn't be longer than 8 characters.
    Hope this will help.

  • Problem while calling an RFC Function Module in Background

    Hello,
    I have created a RFC function module for reading data from an external DB system. The FM calls an external RFC program (coded in C++ using RFC SDK), which delivers the required data. This external program is maintainged as an TCP RFC Connection in SM59.
    Further I have created a report, that calls the RFC function module to get the data from the external RFC programm.
    My problem is, when I call the report in foreground, everything works OK, the RFC connection works and data can be read from the external program.
    However, when I schedule the report to run in background as a job, the report is stating in the protocoll that there was a problem calling the defined RFC connection (although the connection is working properly at that time).
    More funny is, this particular problem with running in background occurs only in the productive system, in test and development system the report works correctly also while running as a job in background.
    Can you suggest the solution to this problem? Could it be something with authorisations or server settings?
    I will be on holiday for the next 6 weeks, so take your time to answer .
    Regards,
    Dusan.
    Edited by: Julius Bussche on Jan 22, 2009 7:19 PM
    Please read the forum rules about u r g e n t ...

    This is an external RFC server program, not a remote enabled ABAP RFC function module as the others seem to be assuming, right?
    Is it possible that your DEV and QAS systems only have one application server, but the PROD has many and dedicated one(s) for processing low priority background jobs?
    It might be that the target server of your TCP connection is not this BTC instance, and your RFC server is returning the data "locally" - so, into nirvana...
    Just guessing, but might be worth checking.
    Cheers,
    Julius

  • Message text available in java using RFC function module

    Hello,
    I wrote a function module with the ABAP statement
    MESSAGE .... RAISING PARAMETER_ERROR
    The java developer gets the PARAMETER_ERROR but no
    message text.
    Is the any way (e.g. exception class) to get the message text also.
    Thanks

    hi Michael,
    In the RFC function module use the table RETURN of type BAPIRET2 and instead of raising the error append the error in RETURN. later in your java code you can read this table RETURN and retrieve the error along with the error text.
    Hope this helps.
    Regards,
    Richa.

Maybe you are looking for

  • Wifi problem after.4.3 update on xperia z

    Hi all, After updating my Xperia Z (C6603) to build number 10.4.1.B.0.101 I've been having connection issues with every Wi-Fi network. I've checked the forum but I only found problems about people having Wi-Fi issues with their smartwatch, I do not o

  • Connecting Mac Mini to Sharp LCD 45" TV

    I just purchased a MINI for Xmas 09'. I have tried to connect it to my 45" tv via: DVI and S-Video connections, both have been un-successful! The only time the Mini shows a display is if I connect to a 17" computer monitor..... I purchased the Mivi-

  • US iPhone work in UK on 9th November?

    I'm going to Florida on Friday and thought about picking up a US iPhone, and waiting for the launch date in the UK when iPhone O2 SIM cards will be available, but will I be able to use the US iPhone on a UK O2 iPhone contract? Maybe all the iPhones w

  • What is the best way to separate functionality ?

    I have this project where I need to develop a component  for other flash developers to use. The scenario if you are the one who's going to use my "component" is like this: 1) you create a new project 2) you load the provided swf (or include the provi

  • About delete archivelogs....

    Hello everybody. I have a Data Guard configuration. DG resolved many gaps and then applied them on standby. I did a backup of archived logs on primary database 'cause asm is growing and there is not enough space but at Rman 's log appears that many a