<?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 Re: chain endchain in Application Development and Automation Discussions</title>
    <link>https://community.sap.com/t5/application-development-and-automation-discussions/chain-endchain/m-p/4528736#M1070383</link>
    <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;Hi Manjari,&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;See the sample code below.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;For example I ahve created 4 fields ( ISU module) &lt;/P&gt;&lt;P&gt;Premise(VSTELLE), Premise ID, Installation(ANLAGE), Division (SPARTE)&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;the Flow Logic is as follows:&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;PROCESS BEFORE OUTPUT.&lt;/P&gt;&lt;P&gt; MODULE STATUS_0100.&lt;/P&gt;&lt;P&gt;*&lt;/P&gt;&lt;P&gt;PROCESS AFTER INPUT.&lt;/P&gt;&lt;P&gt; MODULE USER_COMMAND_0100.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt; CHAIN.&lt;/P&gt;&lt;P&gt;   FIELD : P_VSTELLE, P_PREMISE_ID.&lt;/P&gt;&lt;P&gt;   MODULE CHECK_PREMISE. "Here u can validate these fields and update database&lt;/P&gt;&lt;P&gt; ENDCHAIN.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;chain.&lt;/P&gt;&lt;P&gt;  field : p_anlage, p_sparte.&lt;/P&gt;&lt;P&gt;  MODULE M2.  "Here u can validate these fields and update database&lt;/P&gt;&lt;P&gt;endchain.  &lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&amp;lt;Module Pool Program&amp;gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;MODULE STATUS_0100 OUTPUT.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  SET PF-STATUS 'ABC'.&lt;/P&gt;&lt;P&gt;  SET TITLEBAR 'ABC'.&lt;/P&gt;&lt;P&gt;  CLEAR G_FLAG1.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;ENDMODULE.                 " STATUS_0100  OUTPUT&lt;/P&gt;&lt;P&gt;MODULE USER_COMMAND_0100 INPUT.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  case sy-ucomm.&lt;/P&gt;&lt;P&gt;    when 'BACK'.&lt;/P&gt;&lt;P&gt;      leave to screen 0.&lt;/P&gt;&lt;P&gt;    when 'CANC'.&lt;/P&gt;&lt;P&gt;      LEAVE SCREEN.&lt;/P&gt;&lt;P&gt;    WHEN 'EXIT'.&lt;/P&gt;&lt;P&gt;      LEAVE TO SCREEN 0.&lt;/P&gt;&lt;P&gt;    WHEN 'ENTE'.&lt;/P&gt;&lt;P&gt;  if g_flag1 = 'X'.&lt;/P&gt;&lt;P&gt;    loop at screen.&lt;/P&gt;&lt;P&gt;      if screen-name = 'P_VSTELLE' OR screen-name = 'P_PREMISE_ID'.&lt;/P&gt;&lt;P&gt;        SCREEN-INPUT = 1.&lt;/P&gt;&lt;P&gt;      ENDIF.&lt;/P&gt;&lt;P&gt;      MODIFY SCREEN.&lt;/P&gt;&lt;P&gt;    endloop.&lt;/P&gt;&lt;P&gt;  endif.&lt;/P&gt;&lt;P&gt;  IF P_VSTELLE IS NOT INITIAL.&lt;/P&gt;&lt;P&gt;      SELECT SINGLE ANLAGE SPARTE&lt;/P&gt;&lt;P&gt;             FROM EANL&lt;/P&gt;&lt;P&gt;             INTO (P_ANLAGE, P_SPART)&lt;/P&gt;&lt;P&gt;             WHERE VSTELLE = P_VSTELLE.&lt;/P&gt;&lt;P&gt;      IF SY-SUBRC &amp;lt;&amp;gt; 0.&lt;/P&gt;&lt;P&gt;        MESSAGE E053 WITH 'Installation does nto exist for Premise' P_VSTELLE.&lt;/P&gt;&lt;P&gt;      ENDIF.&lt;/P&gt;&lt;P&gt;  ENDIF.&lt;/P&gt;&lt;P&gt;  endcase.&lt;/P&gt;&lt;P&gt;ENDMODULE.                 " USER_COMMAND_&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;MODULE CHECK_PREMISE INPUT.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  IF P_PREMISE_ID IS NOT INITIAL and P_VSTELLE IS INITIAL.&lt;/P&gt;&lt;P&gt;    SELECT SINGLE VSTELLE&lt;/P&gt;&lt;P&gt;           FROM EVBS&lt;/P&gt;&lt;P&gt;           INTO P_VSTELLE&lt;/P&gt;&lt;P&gt;           WHERE PREMISE_ID = P_PREMISE_ID.&lt;/P&gt;&lt;P&gt;    IF SY-SUBRC &amp;lt;&amp;gt; 0.&lt;/P&gt;&lt;P&gt;      g_flag1 = 'X'.&lt;/P&gt;&lt;P&gt;      MESSAGE E053 WITH 'Premise ID is not valid' P_PREMISE_ID.&lt;/P&gt;&lt;P&gt;    ENDIF.&lt;/P&gt;&lt;P&gt;  ENDIF.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;ENDMODULE.                 " CHECK_PREMISE  INPUT&lt;/P&gt;&lt;P&gt;Regards,&lt;/P&gt;&lt;P&gt;Jyothi&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
    <pubDate>Sat, 27 Sep 2008 10:02:56 GMT</pubDate>
    <dc:creator>Former Member</dc:creator>
    <dc:date>2008-09-27T10:02:56Z</dc:date>
    <item>
      <title>chain endchain</title>
      <link>https://community.sap.com/t5/application-development-and-automation-discussions/chain-endchain/m-p/4528734#M1070381</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;Hi &lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;i have a requirement where i need to use Chain Endchain for a particular groups of fields from Infotypes.(seperate group for different Infotype fields.. ex: fields from Infotype 0001 are grouped in a CHAIN.. ENDCHAIN, fields from Infotype 0002 are grouped in another CHAIN.. ENDCHAIN, so on)&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Initially the fields will be populated with some values. if any of those group field's values is changed i have to update a flag, and accordingly i will be doing the database modification.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt; Please provide me Inputs on how to implement this. or any sample code will also do&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Thanks, &lt;/P&gt;&lt;P&gt;Manjari&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Sat, 27 Sep 2008 07:27:11 GMT</pubDate>
      <guid>https://community.sap.com/t5/application-development-and-automation-discussions/chain-endchain/m-p/4528734#M1070381</guid>
      <dc:creator>Former Member</dc:creator>
      <dc:date>2008-09-27T07:27:11Z</dc:date>
    </item>
    <item>
      <title>Re: chain endchain</title>
      <link>https://community.sap.com/t5/application-development-and-automation-discussions/chain-endchain/m-p/4528735#M1070382</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;hi Manjari,&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Here is some information about how CHAIN.. ENDCHAIN. statement works.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;chain and endchain are used for validations in the flow logic itself.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;chain and end chain are used for multiple validation on&lt;/P&gt;&lt;P&gt;module pool programming and for example  we use the below&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;syntax field  &amp;lt;field name&amp;gt; module &amp;lt;module name&amp;gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;module keyword give the place where you write your piece of code&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;If you want to ensure that more than one field is ready for input following an error dialog, you must list all&lt;/P&gt;&lt;P&gt;of the relevant fields in the FIELD statement, and include both that and the MODULE statement in a&lt;/P&gt;&lt;P&gt;CHAIN u2026 ENDCHAIN block.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;You can include individual fields in more than one CHAIN u2026 ENDCHAIN block.&lt;/P&gt;&lt;P&gt;Note that the FIELD statement does not only make the field ready for input again; it also means that field&lt;/P&gt;&lt;P&gt;contents changed during the current PAI processing are only visible if the field in question was also included in the FIELD statement of the current CHAIN block.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;PROCESS AFTER INPUT.&lt;/P&gt;&lt;P&gt;FIELD A MODULE check_A.&lt;/P&gt;&lt;P&gt;FIELD B MODULE check_B.&lt;/P&gt;&lt;P&gt;CHAIN.&lt;/P&gt;&lt;P&gt;FIELD: C,D.&lt;/P&gt;&lt;P&gt;MODULE check_CD.&lt;/P&gt;&lt;P&gt;ENDCHAIN.&lt;/P&gt;&lt;P&gt;CHAIN.&lt;/P&gt;&lt;P&gt;FIELD: C,B.&lt;/P&gt;&lt;P&gt;MODULE check_CB.&lt;/P&gt;&lt;P&gt;ENDCHAIN.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;If the system sends an error or warning message, the current screen is sent again, but the PBO is not&lt;/P&gt;&lt;P&gt;processed again.&lt;/P&gt;&lt;P&gt;Only the fields to which the module is assigned are ready for input again.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;After the user has entered new values, the PROCESS AFTER INPUT module is not completely&lt;/P&gt;&lt;P&gt;reprocessed, but restarted somewhere within the processing block.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;The system finds out which field the user changed and resumes processing at the first corresponding&lt;/P&gt;&lt;P&gt;FIELD statement.&lt;/P&gt;&lt;P&gt;If the user merely confirms a warning message (without changing the fieldu2019s contents), the system&lt;/P&gt;&lt;P&gt;restarts the PAI processing after the MESSAGE statement where the error was triggered.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Regards,&lt;/P&gt;&lt;P&gt;Jyothi&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Sat, 27 Sep 2008 08:57:41 GMT</pubDate>
      <guid>https://community.sap.com/t5/application-development-and-automation-discussions/chain-endchain/m-p/4528735#M1070382</guid>
      <dc:creator>Former Member</dc:creator>
      <dc:date>2008-09-27T08:57:41Z</dc:date>
    </item>
    <item>
      <title>Re: chain endchain</title>
      <link>https://community.sap.com/t5/application-development-and-automation-discussions/chain-endchain/m-p/4528736#M1070383</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;Hi Manjari,&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;See the sample code below.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;For example I ahve created 4 fields ( ISU module) &lt;/P&gt;&lt;P&gt;Premise(VSTELLE), Premise ID, Installation(ANLAGE), Division (SPARTE)&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;the Flow Logic is as follows:&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;PROCESS BEFORE OUTPUT.&lt;/P&gt;&lt;P&gt; MODULE STATUS_0100.&lt;/P&gt;&lt;P&gt;*&lt;/P&gt;&lt;P&gt;PROCESS AFTER INPUT.&lt;/P&gt;&lt;P&gt; MODULE USER_COMMAND_0100.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt; CHAIN.&lt;/P&gt;&lt;P&gt;   FIELD : P_VSTELLE, P_PREMISE_ID.&lt;/P&gt;&lt;P&gt;   MODULE CHECK_PREMISE. "Here u can validate these fields and update database&lt;/P&gt;&lt;P&gt; ENDCHAIN.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;chain.&lt;/P&gt;&lt;P&gt;  field : p_anlage, p_sparte.&lt;/P&gt;&lt;P&gt;  MODULE M2.  "Here u can validate these fields and update database&lt;/P&gt;&lt;P&gt;endchain.  &lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&amp;lt;Module Pool Program&amp;gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;MODULE STATUS_0100 OUTPUT.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  SET PF-STATUS 'ABC'.&lt;/P&gt;&lt;P&gt;  SET TITLEBAR 'ABC'.&lt;/P&gt;&lt;P&gt;  CLEAR G_FLAG1.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;ENDMODULE.                 " STATUS_0100  OUTPUT&lt;/P&gt;&lt;P&gt;MODULE USER_COMMAND_0100 INPUT.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  case sy-ucomm.&lt;/P&gt;&lt;P&gt;    when 'BACK'.&lt;/P&gt;&lt;P&gt;      leave to screen 0.&lt;/P&gt;&lt;P&gt;    when 'CANC'.&lt;/P&gt;&lt;P&gt;      LEAVE SCREEN.&lt;/P&gt;&lt;P&gt;    WHEN 'EXIT'.&lt;/P&gt;&lt;P&gt;      LEAVE TO SCREEN 0.&lt;/P&gt;&lt;P&gt;    WHEN 'ENTE'.&lt;/P&gt;&lt;P&gt;  if g_flag1 = 'X'.&lt;/P&gt;&lt;P&gt;    loop at screen.&lt;/P&gt;&lt;P&gt;      if screen-name = 'P_VSTELLE' OR screen-name = 'P_PREMISE_ID'.&lt;/P&gt;&lt;P&gt;        SCREEN-INPUT = 1.&lt;/P&gt;&lt;P&gt;      ENDIF.&lt;/P&gt;&lt;P&gt;      MODIFY SCREEN.&lt;/P&gt;&lt;P&gt;    endloop.&lt;/P&gt;&lt;P&gt;  endif.&lt;/P&gt;&lt;P&gt;  IF P_VSTELLE IS NOT INITIAL.&lt;/P&gt;&lt;P&gt;      SELECT SINGLE ANLAGE SPARTE&lt;/P&gt;&lt;P&gt;             FROM EANL&lt;/P&gt;&lt;P&gt;             INTO (P_ANLAGE, P_SPART)&lt;/P&gt;&lt;P&gt;             WHERE VSTELLE = P_VSTELLE.&lt;/P&gt;&lt;P&gt;      IF SY-SUBRC &amp;lt;&amp;gt; 0.&lt;/P&gt;&lt;P&gt;        MESSAGE E053 WITH 'Installation does nto exist for Premise' P_VSTELLE.&lt;/P&gt;&lt;P&gt;      ENDIF.&lt;/P&gt;&lt;P&gt;  ENDIF.&lt;/P&gt;&lt;P&gt;  endcase.&lt;/P&gt;&lt;P&gt;ENDMODULE.                 " USER_COMMAND_&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;MODULE CHECK_PREMISE INPUT.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  IF P_PREMISE_ID IS NOT INITIAL and P_VSTELLE IS INITIAL.&lt;/P&gt;&lt;P&gt;    SELECT SINGLE VSTELLE&lt;/P&gt;&lt;P&gt;           FROM EVBS&lt;/P&gt;&lt;P&gt;           INTO P_VSTELLE&lt;/P&gt;&lt;P&gt;           WHERE PREMISE_ID = P_PREMISE_ID.&lt;/P&gt;&lt;P&gt;    IF SY-SUBRC &amp;lt;&amp;gt; 0.&lt;/P&gt;&lt;P&gt;      g_flag1 = 'X'.&lt;/P&gt;&lt;P&gt;      MESSAGE E053 WITH 'Premise ID is not valid' P_PREMISE_ID.&lt;/P&gt;&lt;P&gt;    ENDIF.&lt;/P&gt;&lt;P&gt;  ENDIF.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;ENDMODULE.                 " CHECK_PREMISE  INPUT&lt;/P&gt;&lt;P&gt;Regards,&lt;/P&gt;&lt;P&gt;Jyothi&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Sat, 27 Sep 2008 10:02:56 GMT</pubDate>
      <guid>https://community.sap.com/t5/application-development-and-automation-discussions/chain-endchain/m-p/4528736#M1070383</guid>
      <dc:creator>Former Member</dc:creator>
      <dc:date>2008-09-27T10:02:56Z</dc:date>
    </item>
  </channel>
</rss>

