WebSphere Message Broker Version 8.0.0.5 Betriebssysteme: AIX, HP-Itanium, Linux, Solaris, Windows, z/OS

Sehen Sie sich die Informationen zur aktuellen Produktversion im IBM Integration Bus Version 9.0 an.

PeopleCode für ein angepasstes Ereignisprojekt

Zwei PeopleCode-Funktionen sind für die Unterstützung der eingehenden Verarbeitung erforderlich. Wenn Sie ein angepasstes Ereignisprojekt in PeopleTools für die eingehende Unterstützung erstellen, müssen Sie dem Projekt die PeopleCode-Funktionen hinzufügen.

Der folgende PeopleCode enthält die Funktionen 'IBMPublishEvent' und 'IBMPublishFutureDatedEvent', mit denen Ereignisse in der Ereignistabelle veröffentlicht werden. Die Aufrufe für diese Funktionen werden von der Funktion 'SavePostChange PeopleCode' in der gewünschten PeopleSoft-Komponente vorgenommen.
/* IBM event notification */
Component string &KEYSTRING;
Component string &KEYNAME;
Component array of string &KEYARRAY;
Component string &KEYDELIM;
Component string &IBMVERB;
Local Record &IBMREC;
Function IBMPublishFutureDatedEvent(&BO, &KEYS, &EFFDATE)
; /* == create a new record object for cw_event_tbl == */
   &IBMREC = CreateRecord(Record.IBM_EVENT_TBL);
 /* =============== KEYS ================ */ 
/* composing keys and values in name value format */
   &KEYSTRING = "";
   &KEYDELIM = ":";
   &KEYARRAY = Split(&KEYS, &KEYDELIM);
   &LEN = &KEYARRAY.Len;
   For &I = 1 To &LEN; 
/* get keys and values */ 
/* get rid of record name */
      &POS1 = Find(".", &KEYARRAY [&I]);
      &L1 = Len(&KEYARRAY [&I]);
      &POS2 = &L1 - &POS1;
      &KEYNAME = Right(&KEYARRAY [&I], &POS2); 
/****The code below will remove special characters and****/
/****adjust the characters' case to ensure it is same as the****/
/****attribute name in the business object definition***/ 
/****Start****/
      &lLen = Len(&KEYNAME);
      &sOrigString = &KEYNAME;
      &sNewString = "";
      &lCtr2 = 1;
      &isSpecialChar = "true";
      For &lCtr = 1 To &lLen;
         &sChar = Substring(&sOrigString, &lCtr, 1);
         If (&sChar = "A" Or
               &sChar = "a" Or
               &sChar = "B" Or
               &sChar = "b" Or
               &sChar = "C" Or
               &sChar = "c" Or
               &sChar = "D" Or
               &sChar = "d" Or
               &sChar = "E" Or
               &sChar = "e" Or
               &sChar = "F" Or
               &sChar = "f" Or
               &sChar = "G" Or
               &sChar = "g" Or
               &sChar = "H" Or
               &sChar = "h" Or
               &sChar = "I" Or
               &sChar = "i" Or
               &sChar = "J" Or
               &sChar = "j" Or
               &sChar = "K" Or
               &sChar = "k" Or
               &sChar = "L" Or
               &sChar = "l" Or
               &sChar = "M" Or
               &sChar = "m" Or
               &sChar = "N" Or
               &sChar = "n" Or
               &sChar = "O" Or
               &sChar = "o" Or
               &sChar = "P" Or
               &sChar = "p" Or
               &sChar = "Q" Or
               &sChar = "q" Or
               &sChar = "R" Or
               &sChar = "r" Or
               &sChar = "S" Or
               &sChar = "s" Or
               &sChar = "T" Or
               &sChar = "t" Or
               &sChar = "U" Or
               &sChar = "u" Or
               &sChar = "V" Or
               &sChar = "v" Or
               &sChar = "W" Or
               &sChar = "w" Or
               &sChar = "X" Or
               &sChar = "x" Or
               &sChar = "Y" Or
               &sChar = "y" Or
               &sChar = "Z" Or
               &sChar = "z" Or
               &sChar = "1" Or
               &sChar = "2" Or
               &sChar = "3" Or
               &sChar = "4" Or
               &sChar = "5" Or
               &sChar = "6" Or
               &sChar = "7" Or
               &sChar = "8" Or
               &sChar = "9" Or
               &sChar = "0") Then
            If (&isSpecialChar = "true") Then
               &sNewString = &sNewString | Upper(&sChar);
               &isSpecialChar = "false";
            Else
               &sNewString = &sNewString | Lower(&sChar);
            End-If;
         Else
            &isSpecialChar = "true";
         End-If;
      End-For;
      &KEYNAME = &sNewString;
/*********End*********/
      &KEYSTRING = &KEYSTRING | &KEYNAME | "=" | @&KEYARRAY [&I] | &KEYDELIM
   End-For;
   &KEYSTRING = RTrim(&KEYSTRING, ":");
   &IBMREC.IBM_OBJECT_KEYS.Value = &KEYSTRING; 
/*============== VERB =========================*/ 
/*  verb determination uses variable &IBMVERB */
   Evaluate %Mode
   When = "A"
      &IBMVERB = "Create";
      Break;
   When = "U"
      &IBMVERB = "Update";
      Break;
   When = "L"
      &IBMVERB = "Update";
      Break;
   When = "C"
      &IBMVERB = "Update";
      Break;
   When-Other
      &IBMVERB = "Retrieve";
   End-Evaluate;
   &IBMREC.IBM_OBJECT_VERB.Value = &IBMVERB; 
/*  ======================  EVENT_ID GEN   ==================================== */ 
/*  create event_id */
   &NEWNUM = GetNextNumber(IBM_FETCH_ID.IBM_NEXT_EVENT_ID, 99999); 
/*  only use newnum if no error generating next number  */
   If &NEWNUM > 0 Then
      &IBMREC.IBM_EVENT_ID.Value = &NEWNUM;
   Else
      &IBMREC.IBM_EVENT_ID.Value = %Datetime;
   End-If; /*Support for Future Effective Date - The adapter will poll such events when the date arrives*/
   If &EFFDATE > %Datetime Then
      &IBMREC.IBM_EVENT_DTTM.Value = &EFFDATE;
      &IBMREC.IBM_EVENT_STATUS.Value = "99";
   Else
      &IBMREC.IBM_EVENT_DTTM.Value = %Datetime;
      &IBMREC.IBM_EVENT_STATUS.Value = "0";
   End-If; /*================  INSERT EVENT INTO IBM_EVENT_TBL ============*/ 
/*  insert row into table using record object*/
   &IBMREC.IBM_OBJECT_NAME.Value = &BO;
   &IBMREC.Insert();
End-Function;
Function IBMPublishEvent(&BO, &KEYS);  
   /* == create a new record object for cw_event_tbl == */
   &IBMREC = CreateRecord(Record.IBM_EVENT_TBL);
   
   
   /* =============== KEYS ================ */
   /* composing keys and values in name value format */
   &KEYSTRING = "";
   &KEYDELIM = ":";
   &KEYARRAY = Split(&KEYS, &KEYDELIM);
   &LEN = &KEYARRAY.Len;
   
   For &I = 1 To &LEN;
      /* get keys and values */
      /* get rid of record name */
      &POS1 = Find(".", &KEYARRAY [&I]);
      &L1 = Len(&KEYARRAY [&I]);
      &POS2 = &L1 - &POS1;
      &KEYNAME = Right(&KEYARRAY [&I], &POS2);
      
      /****The code below will remove special characters and
      /****adjust the characters' case to ensure it is same as the
      /****attribute name in the business object definition***/
      /****Start****/
      &lLen = Len(&KEYNAME);
      &sOrigString = &KEYNAME;
      &sNewString = "";
      &lCtr2 = 1;
      &isSpecialChar = "true";
      For &lCtr = 1 To &lLen;
         &sChar = Substring(&sOrigString, &lCtr, 1);
                  If (&sChar = "A" Or
               &sChar = "a" Or
               &sChar = "B" Or
               &sChar = "b" Or
               &sChar = "C" Or
               &sChar = "c" Or
               &sChar = "D" Or
               &sChar = "d" Or
               &sChar = "E" Or
               &sChar = "e" Or
               &sChar = "F" Or
               &sChar = "f" Or
               &sChar = "G" Or
               &sChar = "g" Or
               &sChar = "H" Or
               &sChar = "h" Or
               &sChar = "I" Or
               &sChar = "i" Or
               &sChar = "J" Or
               &sChar = "j" Or
               &sChar = "K" Or
               &sChar = "k" Or
               &sChar = "L" Or
               &sChar = "l" Or
               &sChar = "M" Or
               &sChar = "m" Or
               &sChar = "N" Or
               &sChar = "n" Or
               &sChar = "O" Or
               &sChar = "o" Or
               &sChar = "P" Or
               &sChar = "p" Or
               &sChar = "Q" Or
               &sChar = "q" Or
               &sChar = "R" Or
               &sChar = "r" Or
               &sChar = "S" Or
               &sChar = "s" Or
               &sChar = "T" Or
               &sChar = "t" Or
               &sChar = "U" Or
               &sChar = "u" Or
               &sChar = "V" Or
               &sChar = "v" Or
               &sChar = "W" Or
               &sChar = "w" Or
               &sChar = "X" Or
               &sChar = "x" Or
               &sChar = "Y" Or
               &sChar = "y" Or
               &sChar = "Z" Or
               &sChar = "z" Or
               &sChar = "1" Or
               &sChar = "2" Or
               &sChar = "3" Or
               &sChar = "4" Or
               &sChar = "5" Or
               &sChar = "6" Or
               &sChar = "7" Or
               &sChar = "8" Or
               &sChar = "9" Or
               &sChar = "0") Then
                        If (&isSpecialChar = "true") Then
               &sNewString = &sNewString | Upper(&sChar);
               &isSpecialChar = "false";
            Else
               &sNewString = &sNewString | Lower(&sChar);
            End-If;
         Else
            &isSpecialChar = "true";
         End-If;
      End-For;
      &KEYNAME = &sNewString;
      
      /*********End*********/
      &KEYSTRING = &KEYSTRING | &KEYNAME | "=" | @&KEYARRAY [&I] | &KEYDELIM
   End-For;
   &KEYSTRING = RTrim(&KEYSTRING, ":");
   
   &IBMREC.IBM_OBJECT_KEYS.Value = &KEYSTRING; 
   
   /*============== VERB =========================*/
      /*  verb determination uses variable &IBMVERB */
   Evaluate %Mode
      When = "A"
      &IBMVERB = "Create";
      Break;
      When = "U"
      &IBMVERB = "Update";
      Break;
      When = "L"
      &IBMVERB = "Update";
      Break;
      When = "C"
      &IBMVERB = "Update";
      Break;
   When-Other
      &IBMVERB = "Retrieve";
   End-Evaluate;
   
   &IBMREC.IBM_OBJECT_VERB.Value = &IBMVERB; 
   
   /*  ======================  EVENT_ID GEN   ============================= */
   /*  create event_id */
   
   &NEWNUM = GetNextNumber(IBM_FETCH_ID.IBM_NEXT_EVENT_ID, 99999);
   
   /*  only use newnum if no error generating next number  */
   
      If &NEWNUM > 0 Then
      &IBMREC.IBM_EVENT_ID.Value = &NEWNUM;
   Else
      &IBMREC.IBM_EVENT_ID.Value = %Datetime;
   End-If;
   
   &IBMREC.IBM_EVENT_DTTM.Value = %Datetime;
   
   /* ==============  EVENT_STATUS  =================*/
      /* Validate and set event status &IBMSTATUS - list values if date is ok*/
   &IBMREC.IBM_EVENT_STATUS.Value = "0";
   
   /*================  INSERT EVENT INTO IBM_EVENT_TBL ============*/
   /*  insert row into table using record object*/
   
   
   &IBMREC.IBM_OBJECT_NAME.Value = &BO;
   
   &IBMREC.Insert();
   
End-Function; 
Bemerkungen | Marken | Downloads | Bibliothek | Support | Feedback

Copyright IBM Corporation 1999, 2014Copyright IBM Corporation 1999, 2014.

        
        Letzte Aktualisierung:
        
        Letzte Aktualisierung: 2015-02-28 16:23:37


ReferenzthemaReferenzthema | Version 8.0.0.5 | rpeo_plcode