cancel
Showing results for 
Search instead for 
Did you mean: 

want to use to CChannel

abhay_aggarwal
Participant
0 Kudos

Hi Gurus,

I am working on scenario in which i have to use overwrite and append both in Receiver File Adapter.

I have created two CChannel(BS) in which first one for create with (OverWrite) and for Second one (Append). for this i have added one field (flag) in which i am sending value flag=0 and 1 .

My logic is like this

if flag=0 then use CChannel(BS) for Create(overwrite )

and

if flag=1 the use CChannel(BS) for append

so that for time it will overwrite the file first time and for flag=1 it will append the records in same file.

when i am defineing them in Receiver Determination(Conditional Editor) i am getting error in MONI(NO Receiver Found)

Please suggest...............

Regards

Abhay

Accepted Solutions (1)

Accepted Solutions (1)

former_member187339
Active Contributor
0 Kudos

Hi Abhay,

Check Main in SOAP Header of the SXMB_MONI message, see whether the sender parameters matches with the Receiver Determination sender.

Also check the cache in Integration Directory and SXI_Cache...

Secondly, I am not sure whether this approach (one channel creating and another one appending) will be working. What will happen if both the channel brings messages!!!. I would suggest you to use EOIO mode in the sender channel

Regards

Suraj

abhay_aggarwal
Participant
0 Kudos

HI Suraj,

I am using file adapter at receiver side....

Regards

Abhay Agarwal

Answers (5)

Answers (5)

abhay_aggarwal
Participant
0 Kudos

Hi All,

I got the solution for my problem . I have checked the input payload from ECC in that there some space was coming in tag.

I have remove that i have tested and it got processed successfully.........:) .

thanks to all for help..............:)

Regards

Abhay Agarwal

abhay_aggarwal
Participant
0 Kudos

Hi All,

Edited by: Abahy Aggarwal on Feb 10, 2010 6:30 AM

abhay_aggarwal
Participant
0 Kudos

HI All,

I got the point. In my payload(Which is coming from ECC side) there are some tags in which space is coming whenever i am using those fields which is having space (error) is coming for that condition only. wht i need it to do for this space issue kindly suggest.

Regards

Abhay Agarwal

Edited by: Abahy Aggarwal on Feb 9, 2010 1:48 PM

abhay_aggarwal
Participant
0 Kudos

Hi All,

Can any one suggest me on this ? i have tried everything it seems notthing is working......:(

Below is trace

Trace level="1" type="B" name="CL_XMS_MAIN-CALL_PLSRV">

<Trace level="3" type="T">Calling pipeline service: PLSRV_RECEIVER_DETERMINATION</Trace>

<Trace level="3" type="T">Reading Pipeline-Service specification...</Trace>

<Trace level="3" type="T" />

<Trace level="3" type="T">Pipeline service specification (table SXMSPLSRV)</Trace>

<Trace level="3" type="T">PLSRVID = PLSRV_RECEIVER_DETERMINATION</Trace>

<Trace level="3" type="T">PLSRVTYPE =</Trace>

<Trace level="3" type="T">ADRESSMOD = LOCAL</Trace>

<Trace level="3" type="T">P_CLASS = CL_RD_PLSRV</Trace>

<Trace level="3" type="T">P_IFNAME = IF_XMS_PLSRV</Trace>

<Trace level="3" type="T">P_METHOD = ENTER_PLSRV</Trace>

<Trace level="3" type="T">FL_LOG =</Trace>

<Trace level="3" type="T">FL_DUMMY = 0</Trace>

<Trace level="3" type="T" />

<Trace level="1" type="B" name="CL_XMS_MAIN-CALL_PLSRV_LOCAL" />

- <!--

-->

- <Trace level="1" type="B" name="CL_RD_PLSRV-ENTER_PLSRV">

<Trace level="1" type="T">R E C E I V E R - D E T E R M I N A T I O N</Trace>

<Trace level="1" type="T">Cache Content is up to date</Trace>

<Trace level="2" type="T">Start without given receiver</Trace>

<Trace level="2" type="T">Classic Receiver Determination via Rules.</Trace>

<Trace level="2" type="T">Check conditions for rule line no. 1</Trace>

<Trace level="3" type="T">...create rule engine</Trace>

<Trace level="3" type="T">...call rule engine for Condition %CL_SAI_SWF_RULE_ENGINE.MSG_GET(MSG=&_MSG&;NSP=&_NSM&;XPATH="/p1:UST04_MT/row/Index")% CE 0</Trace>

<Trace level="2" type="T">......extracting (new) for Extractor: XP /p1:UST04_MT/row/Index</Trace>

<Trace level="2" type="T">......extracting values found: *</Trace>

<Trace level="2" type="T">......extracting values found: *</Trace>

<Trace level="2" type="T">...invalid Receiver: - RFC2File13</Trace>

<Trace level="2" type="T">No Receiver found behaviour: 0</Trace>

</Trace>

</Trace>

- <Trace level="1" type="B" name="CL_XMS_MAIN-WRITE_MESSAGE_LOG_TO_PERSIST">

<Trace level="3" type="T">Persisting message after plsrv call</Trace>

<Trace level="3" type="T">Message-Version = 001</Trace>

<Trace level="3" type="T">Message version 001</Trace>

<Trace level="3" type="T">Pipeline CENTRAL</Trace>

<Trace level="1" type="T">--start sender interface action determination</Trace>

<Trace level="1" type="T">select interface UST04_OB*</Trace>

<Trace level="1" type="T">select interface namespace ness.com:Eurekify:UST04</Trace>

<Trace level="1" type="T">no interface found</Trace>

</Trace>

<Trace level="3" type="System_Error">Error exception return from pipeline processing!</Trace>

<Trace level="1" type="B" name="CL_XMS_MAIN-WRITE_MESSAGE_TO_PERSIST" />

- <!--

-->

<Trace level="3" type="T">Persisting message Status = 014</Trace>

<Trace level="3" type="T">Message version 002</Trace>

<Trace level="3" type="T">Pipeline CENTRAL</Trace>

<Trace level="1" type="T">--start sender interface action determination</Trace>

<Trace level="1" type="T">select interface UST04_OB*</Trace>

<Trace level="1" type="T">select interface namespace ness.com:Eurekify:UST04</Trace>

<Trace level="1" type="T">no interface found</Trace>

Regards

Abhay

Edited by: Abahy Aggarwal on Feb 9, 2010 6:49 AM

former_member200962
Active Contributor
0 Kudos

Can you host the screenshot of your RD on some commonly accessible site....if wiki allows host it there.

If you are 100% sure that you have maintained a proper condition in RD and even the input payload is satisfying this then do some dummy changes to RD and again activate (or recreate RD) and refresh the cache.

Are your Receiver services created/ activated properly and visible in SXI_CACHE?

Regards,

Abhishek.

abhay_aggarwal
Participant
abhay_aggarwal
Participant
0 Kudos

Hi Abhishek,

I think the error which is coming only when i am assging the condition otherwise it processing correctly

You can check the trace

">...call rule engine for Condition %CL_SAI_SWF_RULE_ENGINE.MSG_GET(MSG=&_MSG&;NSP=&_NSM&;XPATH="/p1:UST04_MT/row/Index")% CE 0</Trace>

<Trace level="2" type="T">......extracting (new) for Extractor: XP /p1:UST04_MT/row/Index</Trace>

<Trace level="2" type="T">......extracting values found: *</Trace>

<Trace level="2" type="T">......extracting values found: *</Trace>

<Trace level="2" type="T">...invalid Receiver: - RFC2File13</Trace>

<Trace level="2" type="T">No Receiver found behaviour: 0</Trace>

/p1:UST04_MT/row/Index=0 ( I have given this condition Do i need to assgin something else is opreator which i am using correct )

My payload is

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

- <n0:UST04_MT xmlns:n0="ness.com:Eurekify:UST04" xmlns:prx="urn:sap.com:proxy:DV3:/1SAI/TAS9238077179A583C7CD28:701:2009/02/10">

- <row>

<Index>0</Index>

<Date>20100208</Date>

<MANDT>100</MANDT>

<Flag>1</Flag>

<Identifier>UST04</Identifier>

<BNAME>............</BNAME>

<PROFILE>............</PROFILE>

</row>

- <row>

<Index>0</Index>

<Date>20100208</Date>

<MANDT>100</MANDT>

<Flag>1</Flag>

<Identifier>UST04</Identifier>

<BNAME>AADLER</BNAME>

<PROFILE>BASE_TRANS</PROFILE>

</row>

Regards

Abhay

former_member200962
Active Contributor
0 Kudos

Similar discussion going on here:

for this i have added one field (flag) in which i am sending value flag=0 and 1

It should not be 0 and 1.....it should be 0 or 1...the occurence of the field should be 0..1 in the entire message

Once you define a condition in RD you shoul make sure that you have maintained a different set of ID objects (interface determination, receiver agreement, receiver channel...each two in number)....so at any given time only one set of objects will be working (either appending or over-writting)

I am wondering why such a business requirement to append or over-write the file?

Regards,

Abhishek.

abhay_aggarwal
Participant
0 Kudos

Hi Abhishek,

this req can not be meet. we can not do like this ............ as you said it will take 0 or 1 then wht use of conditionl editor in receiver determination.........

Regards

Abhay Agarwal

former_member200962
Active Contributor
0 Kudos
as you said it will take 0 or 1 then wht use of conditionl editor in receiver determination.........

OK...let us consider an example where you get both 0 and 1....which channel do you expect to trigger?

Condition in receiver determination will ensure that either of the two channels have to be used....or may be your business requirement is not being understood by me.

Regards,

Abhishek.

abhay_aggarwal
Participant
0 Kudos

HI Abhishek,

I am wondering why such a business requirement to append or over-write the file?

it is not possible to do over writing (create) and append for same file?

Regards

Abhay

former_member200962
Active Contributor
0 Kudos
it is not possible to do over writing (create) and append for same file?

May be possible....but not at the same time....if the file is locked by one channel and the other one tries to update it, an error may pop-up saying file locked by some application.

Regards,

Abhishek.

abhay_aggarwal
Participant
0 Kudos

Hi Abhishek,

that is why I am checking the value of flag in receiver determination (Conditional Editor)

that if flag=0 then create over write for file(ABC)

if flag=1 then append records in same file(ABC)

Regards

Abhay Agarwal

abhay_aggarwal
Participant
0 Kudos

HI Gurus,

Please suggest...

Regards

Abhay

Shabarish_Nair
Active Contributor
0 Kudos

i am a bit confused on has to why you are having issues.

Either go for xpath in your RD - /people/shabarish.vijayakumar/blog/2006/06/07/customise-your-xpath-expressions-in-receiver-determination or explore the option of an xpath in your ID - /people/suraj.sr/blog/2006/01/05/multiple-inbound-interfaces-within-a-service

Could you check the above and if it still doesnt solve, explain to us a bit more of your issue.

former_member200962
Active Contributor
0 Kudos

I dont think he is confused about writing the condition.

his intention is to perform Append and Overwrite at the same time.....any suggestions?

Shabarish_Nair
Active Contributor
0 Kudos

>

> I dont think he is confused about writing the condition.

>

> his intention is to perform Append and Overwrite at the same time.....any suggestions?

but if he is using a condition, how can append and overwrite happen at the same time? (i am confused again )

One thing is for sure, you cannot use append and overwrite at the same time.

former_member200962
Active Contributor
0 Kudos

even i replied the same, but my replies seemed to be confusing for him

abhay_aggarwal
Participant
0 Kudos

Hi Abhishek , Shab,

Yes abhishek is corrcot i want to use create(With OverWrite) and append fn both for that i have created 2 services with 2 channels(1 for Create and 1 for Append) and after that i have created two aggremants and after that 2 Interface Determination with same message mapping as i am same structure . after that in Receiiver Determination Conditional Editor i have given condtion that if flag=0 then create with (OverWrite) and in 2nd Condition flag=1 then append the records.

beacuse my req is i have create the file in one day and keep appending the records and after that on next day i have to overwrite the existing file.........

Regards

Abhay Agarwal

Shabarish_Nair
Active Contributor
0 Kudos

>

> Hi Abhishek , Shab,

>

>

> Yes abhishek is corrcot i want to use create(With OverWrite) and append fn both for that i have created 2 services with 2 channels(1 for Create and 1 for Append) and after that i have created two aggremants and after that 2 Interface Determination with same message mapping as i am same structure . after that in Receiiver Determination Conditional Editor i have given condtion that if flag=0 then create with (OverWrite) and in 2nd Condition flag=1 then append the records.

>

>

> beacuse my req is i have create the file in one day and keep appending the records and after that on next day i have to overwrite the existing file.........

>

>

>

> Regards

> Abhay Agarwal

ok got it.

So say flag is 0 - you use CC1 which is used for Create operation and from then on your source message will have flag as 1 and then you need to use CC2 using the append option. Isnt it?

If the above is true. I suggest going for conditional routing in the Interface determination.

former_member187339
Active Contributor
0 Kudos

Hi Abhay,

What happend to your problem "No receiver Found" Did you checked as I mentioned? Also check whether you have star value in the sender party field of sender agreement or receiver determination.

Also what abput the concern which I mentioned earlier

>>Secondly, I am not sure whether this approach (one channel creating and another one appending) will be working. What will happen if both the channel brings messages!!!. I would suggest you to use EOIO mode in the sender channel

Regards

Suraj

abhay_aggarwal
Participant
0 Kudos

HI Shab,

thanks for reply .........

i have tested with first condition flag=0 and assgin assgin one service with one Channel(Create opreation) and it is showing NO Receiver Found for that also .

/p1:UST04_MT/row/Index=0 service = Proxy2file1

My input paylaod is

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

- <n0:UST04_MT xmlns:n0="ness.com:Eurekify:UST04" xmlns:prx="urn:sap.com:proxy:DV3:/1SAI/TAS9238077179A583C7CD28:701:2009/02/10">

- <row>

<Index>0</Index>

<Date>20100208</Date>

<MANDT>100</MANDT>

<Flag>1</Flag>

<Identifier>UST04</Identifier>

<BNAME>............</BNAME>

<PROFILE>............</PROFILE>

</row>

- <row>

<Index>0</Index>

<Date>20100208</Date>

<MANDT>100</MANDT>

<Flag>1</Flag>

<Identifier>UST04</Identifier>

<BNAME>AADLER</BNAME>

<PROFILE>BASE_TRANS</PROFILE>

</row>

- <row>

<Index>0</Index>

<Date>20100208</Date>

<MANDT>100</MANDT>

<Flag>1</Flag>

<Identifier>UST04</Identifier>

<BNAME>AADLER</BNAME>

<PROFILE>CELLCOM___</PROFILE>

</row>

for this also it is showing error........

Reagrds

Abhay

abhay_aggarwal
Participant
0 Kudos

Hi Suraj,

I have checked for that every thing looks fine.

Regards

Abhay

abhay_aggarwal
Participant
0 Kudos

Hi Shab,

Why we will for interface routing why can't we go for reciver determination routing.

the logic is simple i am sending the Records like this

p1:UST04_MT/row/Index=0 service = Proxy2file1

My input paylaod is

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

- <n0:UST04_MT xmlns:n0="ness.com:Eurekify:UST04" xmlns:prx="urn:sap.com:proxy:DV3:/1SAI/TAS9238077179A583C7CD28:701:2009/02/10">

- <row>

<Index>0</Index>

<Date>20100208</Date>

<MANDT>100</MANDT>

<Flag>1</Flag>

<Identifier>UST04</Identifier>

<BNAME>............</BNAME>

<PROFILE>............</PROFILE>

</row>

- <row>

<Index>0</Index>

<Date>20100208</Date>

<MANDT>100</MANDT>

<Flag>1</Flag>

<Identifier>UST04</Identifier>

<BNAME>AADLER</BNAME>

<PROFILE>BASE_TRANS</PROFILE>

</row>

- <row>

<Index>0</Index>

<Date>20100208</Date>

<MANDT>100</MANDT>

<Flag>1</Flag>

<Identifier>UST04</Identifier>

<BNAME>AADLER</BNAME>

<PROFILE>CELLCOM___</PROFILE>

</row>

for this also it is showing error........and if i am removing the this condition my message processd successfully............

Please suggset........

Regards

Abhay

Shabarish_Nair
Active Contributor
0 Kudos

>

> Why we will for interface routing why can't we go for reciver determination routing.

this is because, logically your receiver system is same. so you will have one receiver determination and then in your interface determination use your conditions

You can also go for two receivers provided they are different entities eg. receiver1 and receiver2 etc

abhay_aggarwal
Participant
0 Kudos

I am using different business services............

Regrds

Abhay

Shabarish_Nair
Active Contributor
0 Kudos

then i dont see any issues.

Use XPATH (check the blogs mentioned) ..

still unable to understand why you are having issues. Are you using the right option to add the second receiver? If you are still having issue, try the interface det. conditions that i mentioned before.

abhay_aggarwal
Participant
0 Kudos

HI Shab,

Can you plz more elaborate on right option . I am using X-Path in which i am given the flag =0 which is coming in payload and receiver service still it is showing error for this...........that no receiver found but when i am removing this condition then this is getting processs successfully....

Regards

Abhay Agarwal

former_member206760
Active Contributor
0 Kudos

Hi Abhay,

According to me the condition that u are giving in the conditional receiver determination has issues..

the condition flag = 0 is getting failed...while selcting 0 in the constant option in the condition did u use data type as integer or string..

abhay_aggarwal
Participant
0 Kudos

HI Tarang,

I am using data type as string......shall i use integer..............?

Regards

Abhay

abhay_aggarwal
Participant
0 Kudos

HI Tarang,

According to you i have changed my data type to integer stilll showing error.............:(

Regards

Abhay

former_member206760
Active Contributor
0 Kudos

>

> Hi Shab,

>

>

> Why we will for interface routing why can't we go for reciver determination routing.

>

>

> the logic is simple i am sending the Records like this

>

**> p1:UST04_MT/row/Index=0 service = Proxy2file1>

>

> Abhay

chek the lines taht i have marked in bold u have put a XPATH condition on node INDEX and not FLAG

hope this solves ur problem

Edited by: Tarang Shah on Feb 8, 2010 9:33 PM

Edited by: Tarang Shah on Feb 8, 2010 9:34 PM

Edited by: Tarang Shah on Feb 8, 2010 9:34 PM

Edited by: Tarang Shah on Feb 8, 2010 9:35 PM

abhay_aggarwal
Participant
0 Kudos

Hi Tarang,

That is index only in Xpath . For more understanding for Sdners i have uesd flag word.............

Regards

Abhay Agarwal

former_member190389
Active Contributor
0 Kudos

Hi,

Can you change the target to have only one Flag field in the entire message?

abhay_aggarwal
Participant
0 Kudos

HI All,

Thanks for your all help. Now i think it will be solved .My Message structure is below

<Index>1</Index>

<Date>20100209</Date>

<MANDT>100</MANDT>

<Flag>1</Flag>

<Identifier>UST04</Identifier>

<BNAME>AADLER</BNAME>

<PROFILE>BASE_TRANS</PROFILE>

In above structure when i am assgiing the condition /p1:UST04_MT/row/MANDT=100 it is getting successful but when i am assign any other condition for any field it's showing error ..

Regards

Abhay

Edited by: Abahy Aggarwal on Feb 9, 2010 1:16 PM