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!!
Junif 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
NikhilHi 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,
BaluHi,
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,
KeerthiHi,
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,
JyothirmaiHi 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
BhaskarHi 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,
SandeepHI,
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,
NarenHi,
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 AMHello ,
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 AMHi,
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.
Thankshi 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