<?xml version="1.0" encoding="UTF-8"?>
<rss xmlns:content="http://purl.org/rss/1.0/modules/content/" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns:taxo="http://purl.org/rss/1.0/modules/taxonomy/" version="2.0">
  <channel>
    <title>topic aRs's question regarding shared memory objects created in ECC APO CIF exits in Application Development and Automation Discussions</title>
    <link>https://community.sap.com/t5/application-development-and-automation-discussions/ars-s-question-regarding-shared-memory-objects-created-in-ecc-apo-cif-exits/m-p/3457235#M830607</link>
    <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;In a thread below, aRs asked a very interesting question:&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;We invoke the CIF for an integration model by kicking off the batch program RIMODACT on an ECC server (note that this program is not defined on the APO server.)&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Then, during the RIMODACT execution of the CIF, we call our implementation of the BAdI SMOD_APOCF005 that's defined on the APO server (you can't see this BAdI in SE18 on the ECC server.)&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;And in our implementation of the BAdI, we want to builda shared memory object.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;So where shoudl the root and area class be defined:&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;a) on the ECC server (where RIMODACT is running)?&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;b) on the APO server, where the BAdI lives?&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Part of the answer may be that RIMODACT on the ECC server simply calls a remote-enabled FM on the APO server, and the BAdI executes out of that FM.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;In that case - the answer is obvious - the shared memory object must be defined on the ECC server ...&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;I'm going to check out RIMODACT now ... maybe I can answer this one myself.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Edited by: David Halitsky on Feb 20, 2008 6:47 PM&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
    <pubDate>Wed, 20 Feb 2008 17:46:34 GMT</pubDate>
    <dc:creator>Former Member</dc:creator>
    <dc:date>2008-02-20T17:46:34Z</dc:date>
    <item>
      <title>aRs's question regarding shared memory objects created in ECC APO CIF exits</title>
      <link>https://community.sap.com/t5/application-development-and-automation-discussions/ars-s-question-regarding-shared-memory-objects-created-in-ecc-apo-cif-exits/m-p/3457235#M830607</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;In a thread below, aRs asked a very interesting question:&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;We invoke the CIF for an integration model by kicking off the batch program RIMODACT on an ECC server (note that this program is not defined on the APO server.)&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Then, during the RIMODACT execution of the CIF, we call our implementation of the BAdI SMOD_APOCF005 that's defined on the APO server (you can't see this BAdI in SE18 on the ECC server.)&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;And in our implementation of the BAdI, we want to builda shared memory object.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;So where shoudl the root and area class be defined:&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;a) on the ECC server (where RIMODACT is running)?&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;b) on the APO server, where the BAdI lives?&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Part of the answer may be that RIMODACT on the ECC server simply calls a remote-enabled FM on the APO server, and the BAdI executes out of that FM.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;In that case - the answer is obvious - the shared memory object must be defined on the ECC server ...&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;I'm going to check out RIMODACT now ... maybe I can answer this one myself.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Edited by: David Halitsky on Feb 20, 2008 6:47 PM&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Wed, 20 Feb 2008 17:46:34 GMT</pubDate>
      <guid>https://community.sap.com/t5/application-development-and-automation-discussions/ars-s-question-regarding-shared-memory-objects-created-in-ecc-apo-cif-exits/m-p/3457235#M830607</guid>
      <dc:creator>Former Member</dc:creator>
      <dc:date>2008-02-20T17:46:34Z</dc:date>
    </item>
    <item>
      <title>Re: aRs's question regarding shared memory objects created in ECC APO CIF exits</title>
      <link>https://community.sap.com/t5/application-development-and-automation-discussions/ars-s-question-regarding-shared-memory-objects-created-in-ecc-apo-cif-exits/m-p/3457236#M830608</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;This note in RIMODACT seems to indicate that the actual CIF "work" actually happens on the APO server:&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;UL&gt;&lt;LI level="2" type="ul"&gt;&lt;P&gt;BEGIN NOTE 641858*&lt;/P&gt;&lt;/LI&gt;&lt;LI level="2" type="ul"&gt;&lt;P&gt;Order changes must be adopted by APO in exactly the same order*&lt;/P&gt;&lt;/LI&gt;&lt;LI level="2" type="ul"&gt;&lt;P&gt;they happened in R/3. That's why CIF uses a queued RFC and puts the*&lt;/P&gt;&lt;/LI&gt;&lt;LI level="2" type="ul"&gt;&lt;P&gt;order number in the queue name to transfer an order.*&lt;/P&gt;&lt;/LI&gt;&lt;LI level="2" type="ul"&gt;&lt;P&gt;The CIF default issues one qRFC per queuename, resulting in as*&lt;/P&gt;&lt;/LI&gt;&lt;LI level="2" type="ul"&gt;&lt;P&gt;many qRFCs as there are distinct order numbers. However, APO could*&lt;/P&gt;&lt;/LI&gt;&lt;LI level="2" type="ul"&gt;&lt;P&gt;process these orders faster if they came in a single call. So for*&lt;/P&gt;&lt;/LI&gt;&lt;LI level="2" type="ul"&gt;&lt;P&gt;transactions which touch a lot of orders in the same LUW (and pass*&lt;/P&gt;&lt;/LI&gt;&lt;LI level="2" type="ul"&gt;&lt;P&gt;all the orders to CIF as a whole) we can get better performance if*&lt;/P&gt;&lt;/LI&gt;&lt;LI level="2" type="ul"&gt;&lt;P&gt;we bundle these orders in a single qRFC to APO instead of splitting*&lt;/P&gt;&lt;/LI&gt;&lt;LI level="2" type="ul"&gt;&lt;P&gt;them up into different calls. Since we still have to follow the*&lt;/P&gt;&lt;/LI&gt;&lt;LI level="2" type="ul"&gt;&lt;P&gt;serialization rules, this one call must be registered to all queue-*&lt;/P&gt;&lt;/LI&gt;&lt;LI level="2" type="ul"&gt;&lt;P&gt;names resulting from the order numbers.*&lt;/P&gt;&lt;/LI&gt;&lt;LI level="2" type="ul"&gt;&lt;P&gt;However, most transactions will pass single data records to CIF*&lt;/P&gt;&lt;/LI&gt;&lt;LI level="2" type="ul"&gt;&lt;P&gt;anyway so there's nothing really to bundle. An exception for which*&lt;/P&gt;&lt;/LI&gt;&lt;LI level="2" type="ul"&gt;&lt;P&gt;it makes sense is the MRP run.*&lt;/P&gt;&lt;/LI&gt;&lt;LI level="2" type="ul"&gt;&lt;P&gt;To turn this 'bundling' on, you must create an entry in table TVARV*&lt;/P&gt;&lt;/LI&gt;&lt;LI level="2" type="ul"&gt;&lt;P&gt;indicating for which object types this bundling should happen. Use*&lt;/P&gt;&lt;/LI&gt;&lt;LI level="2" type="ul"&gt;&lt;P&gt;the name as given in the constant below and enter a selection range*&lt;/P&gt;&lt;/LI&gt;&lt;LI level="2" type="ul"&gt;&lt;P&gt;for the object type as they appear in constant GC_IMTYP above.*&lt;/P&gt;&lt;/LI&gt;&lt;LI level="2" type="ul"&gt;&lt;P&gt;NOTE! Bundling is currently supported only for object types*&lt;/P&gt;&lt;/LI&gt;&lt;LI level="2" type="ul"&gt;&lt;P&gt;T_PO  - purchase orders &amp;amp; requisitions*&lt;/P&gt;&lt;/LI&gt;&lt;LI level="2" type="ul"&gt;&lt;P&gt;T_ORD - production orders*&lt;/P&gt;&lt;/LI&gt;&lt;LI level="2" type="ul"&gt;&lt;P&gt;T_PLO - planned orders*&lt;/P&gt;&lt;/LI&gt;&lt;LI level="2" type="ul"&gt;&lt;P&gt;T_STK - stock / goods movements*&lt;/P&gt;&lt;/LI&gt;&lt;LI level="2" type="ul"&gt;&lt;P&gt;T_MARD - all(!) stock / goods movements*&lt;/P&gt;&lt;/LI&gt;&lt;LI level="2" type="ul"&gt;&lt;P&gt;T_SLS  - sales data (sales order, delivery)*&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;/UL&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;If that's the case, then the job which executes RIMODACT on the ECC server must be followed by a jov which executes the program that calls the BAPI's on the APO server.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;The BAPIs will still be able to access the shared memory object, because it was built during exection of the CIF BAdI on the APO server.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Agreed ??&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Wed, 20 Feb 2008 18:05:13 GMT</pubDate>
      <guid>https://community.sap.com/t5/application-development-and-automation-discussions/ars-s-question-regarding-shared-memory-objects-created-in-ecc-apo-cif-exits/m-p/3457236#M830608</guid>
      <dc:creator>Former Member</dc:creator>
      <dc:date>2008-02-20T18:05:13Z</dc:date>
    </item>
  </channel>
</rss>

