Attachment

Embed Size (px)

DESCRIPTION

Attachment to delivery Order

Citation preview

***** Implementation of object type MESSAGE *****INCLUDE .BEGIN_DATA OBJECT. " Do not change.. DATA is generated* only private members may be inserted into structure privateDATA: begin of private, CHANGED_OBJECTS(255) OCCURS 0,* Diese Tabelle vereinigt die 3 alten Tabellen:* DEL_RECIPS, DEL_OBJ, NEW_OBJ* Das BOR war nicht in der Lage, 3 private Tabellenattribute* zu verwalten. Daher diese Notlsung.* Zeichen 1-7:* Typ des Eintrags, also 'DEL_RCP', 'DEL_APL', 'NEW_APL'* Zeichen 8-255:* Wert, also LIKE SOMGK oder LIKE SOMG-USED_BY* Bemerkung: Diese Einschrnkung ex. nicht mehr, aber zuviel* Aufwand, dies erneut umzustellen* del_recips like somgk occurs 0,* del_obj like somgk occurs 0,* new_obj like somg-used_by occurs 0,* deleted_recipients like somgk occurs 0,* Flag that this object was changed CHANGED LIKE SONV-FLAG,* Flag that this object was enqueued ENQUEUED LIKE SONV-FLAG,* Flags that document attributes has been changed DOC_CHANGED LIKE SONV-FLAG, PROC_GENERAL_CHANGED LIKE SONV-FLAG, PROC_MEMID_CHANGED LIKE SONV-FLAG, PROC_PARA_CHANGED LIKE SONV-FLAG, PROC_PARB_CHANGED LIKE SONV-FLAG, OBJCONT_CHANGED LIKE SONV-FLAG, SENSITIVITY_CHANGED LIKE SONV-FLAG, MODIF_CHANGED LIKE SONV-FLAG, DESC_CHANGED LIKE SONV-FLAG,* SOMG key of this message object SOMG_KEY LIKE SOMGK, PERSIST_CHECKED LIKE SONV-FLAG, OBJCONT LIKE SOLI OCCURS 0, DESCRIPTION LIKE SOOD-OBJDES, GENERAL_NOTE LIKE SOLI OCCURS 0, "TR280598 B40K011880 end of private, BEGIN OF KEY, FOLDERTYPE LIKE SOFM-FOLTP, FOLDERYEAR LIKE SOFM-FOLYR, FOLDERNUMBER LIKE SOFM-FOLNO, TYPE LIKE SOFM-DOCTP, YEAR LIKE SOFM-DOCYR, NUMBER LIKE SOFM-DOCNO, FORWARDERNAME LIKE SOUB-USRNAM, END OF KEY, RECIPIENTS TYPE SWC_OBJECT OCCURS 0, ASYNCHRON TYPE SOMG-ASYNCHRON, OUTBOXFLAG TYPE SOMG-OUTBOX, LINKFOLDERTYPE TYPE SOODK-OBJTP, LINKFOLDERYEAR TYPE SOODK-OBJYR, LINKFOLDERNUMBER TYPE SOODK-OBJNO, APPLOBJECTIDS TYPE SOMG-USED_BY OCCURS 0, GENERALNOTETYPE TYPE SOMG-GEN_NOTTP, GENERALNOTEYEAR TYPE SOMG-GEN_NOTYR, GENERALNOTENUMBER TYPE SOMG-GEN_NOTNO, NEXTSENDER TYPE SOMG-SENDER, PROCESSTYPE TYPE SOOD-VMTYP, PROCESSELEMENT TYPE SOOD-ACNAM, PROCSKIPFIRSTSCREEN TYPE SOOD-SKIPS, PROCMEMORYID TYPE SOS01-S_MEMID, PROCSETGETTAB(255) OCCURS 0, PROCIMPORTPARAMTAB(255) OCCURS 0, SENSITIVITY TYPE SOOD-OBJSNS, MODIFIABLE TYPE SOOD-OBJCP.END_DATA OBJECT. " Do not change.. DATA is generated* ConstantsCONSTANTS IDX TYPE I VALUE 999999999.* TablesTABLES SOS01.* Type poolsTYPE-POOLS: SO.GET_PROPERTY APPLOBJECTIDS CHANGING CONTAINER. SWC_SET_TABLE CONTAINER 'ApplObjectIDs' OBJECT-APPLOBJECTIDS.END_PROPERTY.GET_PROPERTY RECIPIENTS CHANGING CONTAINER.DATA: SUBRC LIKE SY-SUBRC, MSGV1 LIKE SY-MSGV1, MSGV2 LIKE SY-MSGV2, MSGV3 LIKE SY-MSGV3, MSGV4 LIKE SY-MSGV4. PERFORM REFRESH_ATTRIBUTES CHANGING SUBRC MSGV1 MSGV2 MSGV3 MSGV4. IF SUBRC NE 0. EXIT_RETURN SUBRC MSGV1 MSGV2 MSGV3 MSGV4. ENDIF. SWC_SET_TABLE CONTAINER 'Recipients' OBJECT-RECIPIENTS.END_PROPERTY.GET_PROPERTY OUTBOXFLAG CHANGING CONTAINER.DATA: SUBRC LIKE SY-SUBRC, MSGV1 LIKE SY-MSGV1, MSGV2 LIKE SY-MSGV2, MSGV3 LIKE SY-MSGV3, MSGV4 LIKE SY-MSGV4. PERFORM REFRESH_ATTRIBUTES CHANGING SUBRC MSGV1 MSGV2 MSGV3 MSGV4. IF SUBRC NE 0. EXIT_RETURN SUBRC MSGV1 MSGV2 MSGV3 MSGV4. ENDIF. SWC_SET_ELEMENT CONTAINER 'OutboxFlag' OBJECT-OUTBOXFLAG.END_PROPERTY.GET_PROPERTY LINKFOLDERTYPE CHANGING CONTAINER.DATA: SUBRC LIKE SY-SUBRC, MSGV1 LIKE SY-MSGV1, MSGV2 LIKE SY-MSGV2, MSGV3 LIKE SY-MSGV3, MSGV4 LIKE SY-MSGV4. PERFORM REFRESH_ATTRIBUTES CHANGING SUBRC MSGV1 MSGV2 MSGV3 MSGV4. IF SUBRC NE 0. EXIT_RETURN SUBRC MSGV1 MSGV2 MSGV3 MSGV4. ENDIF. SWC_SET_ELEMENT CONTAINER 'LinkFolderType' OBJECT-LINKFOLDERTYPE.END_PROPERTY.GET_PROPERTY LINKFOLDERYEAR CHANGING CONTAINER.DATA: SUBRC LIKE SY-SUBRC, MSGV1 LIKE SY-MSGV1, MSGV2 LIKE SY-MSGV2, MSGV3 LIKE SY-MSGV3, MSGV4 LIKE SY-MSGV4. PERFORM REFRESH_ATTRIBUTES CHANGING SUBRC MSGV1 MSGV2 MSGV3 MSGV4. IF SUBRC NE 0. EXIT_RETURN SUBRC MSGV1 MSGV2 MSGV3 MSGV4. ENDIF. SWC_SET_ELEMENT CONTAINER 'LinkFolderYear' OBJECT-LINKFOLDERYEAR.END_PROPERTY.GET_PROPERTY LINKFOLDERNUMBER CHANGING CONTAINER.DATA: SUBRC LIKE SY-SUBRC, MSGV1 LIKE SY-MSGV1, MSGV2 LIKE SY-MSGV2, MSGV3 LIKE SY-MSGV3, MSGV4 LIKE SY-MSGV4. PERFORM REFRESH_ATTRIBUTES CHANGING SUBRC MSGV1 MSGV2 MSGV3 MSGV4. IF SUBRC NE 0. EXIT_RETURN SUBRC MSGV1 MSGV2 MSGV3 MSGV4. ENDIF. SWC_SET_ELEMENT CONTAINER 'LinkFolderNumber' OBJECT-LINKFOLDERNUMBER.END_PROPERTY.GET_PROPERTY GENERALNOTETYPE CHANGING CONTAINER.DATA: SUBRC LIKE SY-SUBRC, MSGV1 LIKE SY-MSGV1, MSGV2 LIKE SY-MSGV2, MSGV3 LIKE SY-MSGV3, MSGV4 LIKE SY-MSGV4. PERFORM REFRESH_ATTRIBUTES CHANGING SUBRC MSGV1 MSGV2 MSGV3 MSGV4. IF SUBRC NE 0. EXIT_RETURN SUBRC MSGV1 MSGV2 MSGV3 MSGV4. ENDIF. SWC_SET_ELEMENT CONTAINER 'GeneralNoteType' OBJECT-GENERALNOTETYPE.END_PROPERTY.GET_PROPERTY GENERALNOTEYEAR CHANGING CONTAINER.DATA: SUBRC LIKE SY-SUBRC, MSGV1 LIKE SY-MSGV1, MSGV2 LIKE SY-MSGV2, MSGV3 LIKE SY-MSGV3, MSGV4 LIKE SY-MSGV4. PERFORM REFRESH_ATTRIBUTES CHANGING SUBRC MSGV1 MSGV2 MSGV3 MSGV4. IF SUBRC NE 0. EXIT_RETURN SUBRC MSGV1 MSGV2 MSGV3 MSGV4. ENDIF. SWC_SET_ELEMENT CONTAINER 'GeneralNoteYear' OBJECT-GENERALNOTEYEAR.END_PROPERTY.GET_PROPERTY GENERALNOTENUMBER CHANGING CONTAINER.DATA: SUBRC LIKE SY-SUBRC, MSGV1 LIKE SY-MSGV1, MSGV2 LIKE SY-MSGV2, MSGV3 LIKE SY-MSGV3, MSGV4 LIKE SY-MSGV4. PERFORM REFRESH_ATTRIBUTES CHANGING SUBRC MSGV1 MSGV2 MSGV3 MSGV4. IF SUBRC NE 0. EXIT_RETURN SUBRC MSGV1 MSGV2 MSGV3 MSGV4. ENDIF. SWC_SET_ELEMENT CONTAINER 'GeneralNoteNumber' OBJECT-GENERALNOTENUMBER.END_PROPERTY.*et_property linkfoldertype changing container.*DATA: subrc LIKE sy-subrc,* msgv1 LIKE sy-msgv1,* msgv2 LIKE sy-msgv2,* msgv3 LIKE sy-msgv3,* msgv4 LIKE sy-msgv4.* PERFORM refresh_attributes CHANGING subrc* msgv1* msgv2* msgv3* msgv4.* IF subrc NE 0.* exit_return subrc msgv1 msgv2 msgv3 msgv4.* ENDIF.* swc_set_element container 'Folder' object-folder.*end_property.GET_PROPERTY NEXTSENDER CHANGING CONTAINER.DATA: SUBRC LIKE SY-SUBRC, MSGV1 LIKE SY-MSGV1, MSGV2 LIKE SY-MSGV2, MSGV3 LIKE SY-MSGV3, MSGV4 LIKE SY-MSGV4. PERFORM REFRESH_ATTRIBUTES CHANGING SUBRC MSGV1 MSGV2 MSGV3 MSGV4. IF SUBRC NE 0. EXIT_RETURN SUBRC MSGV1 MSGV2 MSGV3 MSGV4. ENDIF. SWC_SET_ELEMENT CONTAINER 'NextSender' OBJECT-NEXTSENDER.END_PROPERTY.GET_PROPERTY ASYNCHRON CHANGING CONTAINER.DATA: SUBRC LIKE SY-SUBRC, MSGV1 LIKE SY-MSGV1, MSGV2 LIKE SY-MSGV2, MSGV3 LIKE SY-MSGV3, MSGV4 LIKE SY-MSGV4. PERFORM REFRESH_ATTRIBUTES CHANGING SUBRC MSGV1 MSGV2 MSGV3 MSGV4. IF SUBRC NE 0. EXIT_RETURN SUBRC MSGV1 MSGV2 MSGV3 MSGV4. ENDIF. SWC_SET_ELEMENT CONTAINER 'Asynchron' OBJECT-ASYNCHRON.END_PROPERTY.GET_PROPERTY PROCESSTYPE CHANGING CONTAINER.DATA: OBJECT_ID LIKE SOODK, FOLDER_ID LIKE SOODK, RCODE LIKE SY-SUBRC, SENSITIVITY LIKE SOOD-OBJSNS, MODIFIABLE LIKE SOOD-OBJCP, " bzw. sood-fixed PROCESSTYPE LIKE SOOD-VMTYP, PROCESSELEMENT LIKE SOOD-ACNAM, PROCSKIPFIRSTSCREEN LIKE SOOD-SKIPS, PROCMEMORYID LIKE SOS01-S_MEMID, PROCSETGETTAB(255) OCCURS 0, PROCIMPORTPARAMTAB(255) OCCURS 0, OBJCONTTAB LIKE SOLI-LINE OCCURS 0.data: extct like sood-extct. "TR070199 4.6adata: obj_hd_disp like sood2. "TR 6.10 UNICODEdata: objheadtab like soli occurs 1. "TR 6.10 UNICODE IF OBJECT-PRIVATE-PROC_GENERAL_CHANGED NE 'X'.* Refresh processing attributes from database (if sensible) FOLDER_ID-OBJTP = OBJECT-KEY-FOLDERTYPE. FOLDER_ID-OBJYR = OBJECT-KEY-FOLDERYEAR. FOLDER_ID-OBJNO = OBJECT-KEY-FOLDERNUMBER. OBJECT_ID-OBJTP = OBJECT-KEY-TYPE. OBJECT_ID-OBJYR = OBJECT-KEY-YEAR. OBJECT_ID-OBJNO = OBJECT-KEY-NUMBER. PERFORM GET_DOC_ATTRIBUTES TABLES OBJCONTTAB PROCSETGETTAB PROCIMPORTPARAMTAB objheadtab "TR6.10 UNICODE USING FOLDER_ID OBJECT_ID OBJECT-KEY-FORWARDERNAME CHANGING PROCESSTYPE PROCESSELEMENT PROCSKIPFIRSTSCREEN PROCMEMORYID SENSITIVITY MODIFIABLE extct obj_hd_disp "TR6.10 UNICODE RCODE. CASE RCODE. WHEN 0.* Everything OK. Do nothing. WHEN OTHERS. EXIT_PROPERTY_NOT_FOUND. ENDCASE. ELSE. PROCESSTYPE = OBJECT-PROCESSTYPE. ENDIF. SWC_SET_ELEMENT CONTAINER 'ProcessType' PROCESSTYPE.END_PROPERTY.GET_PROPERTY PROCESSELEMENT CHANGING CONTAINER.DATA: OBJECT_ID LIKE SOODK, FOLDER_ID LIKE SOODK, RCODE LIKE SY-SUBRC, SENSITIVITY LIKE SOOD-OBJSNS, MODIFIABLE LIKE SOOD-OBJCP, " bzw. sood-fixed PROCESSTYPE LIKE SOOD-VMTYP, PROCESSELEMENT LIKE SOOD-ACNAM, PROCSKIPFIRSTSCREEN LIKE SOOD-SKIPS, PROCMEMORYID LIKE SOS01-S_MEMID, PROCSETGETTAB(255) OCCURS 0, PROCIMPORTPARAMTAB(255) OCCURS 0, OBJCONTTAB LIKE SOLI-LINE OCCURS 0.data: extct like sood-extct. "TR070199 4.6adata: obj_hd_disp like sood2. "TR 6.10 UNICODEdata: objheadtab like soli occurs 1. "TR 6.10 UNICODE IF OBJECT-PRIVATE-PROC_GENERAL_CHANGED NE 'X'.* Refresh processing attributes from database (if sensible) FOLDER_ID-OBJTP = OBJECT-KEY-FOLDERTYPE. FOLDER_ID-OBJYR = OBJECT-KEY-FOLDERYEAR. FOLDER_ID-OBJNO = OBJECT-KEY-FOLDERNUMBER. OBJECT_ID-OBJTP = OBJECT-KEY-TYPE. OBJECT_ID-OBJYR = OBJECT-KEY-YEAR. OBJECT_ID-OBJNO = OBJECT-KEY-NUMBER. PERFORM GET_DOC_ATTRIBUTES TABLES OBJCONTTAB PROCSETGETTAB PROCIMPORTPARAMTAB objheadtab "TR6.10 UNICODE USING FOLDER_ID OBJECT_ID OBJECT-KEY-FORWARDERNAME CHANGING PROCESSTYPE PROCESSELEMENT PROCSKIPFIRSTSCREEN PROCMEMORYID SENSITIVITY MODIFIABLE extct "TR070199 4.6a obj_hd_disp "TR6.10 UNICODE RCODE. CASE RCODE. WHEN 0.* Everything OK. Do nothing. WHEN OTHERS. EXIT_PROPERTY_NOT_FOUND. ENDCASE. ELSE. PROCESSELEMENT = OBJECT-PROCESSELEMENT. ENDIF. SWC_SET_ELEMENT CONTAINER 'ProcessElement' PROCESSELEMENT.END_PROPERTY.GET_PROPERTY PROCSKIPFIRSTSCREEN CHANGING CONTAINER.DATA: OBJECT_ID LIKE SOODK, FOLDER_ID LIKE SOODK, RCODE LIKE SY-SUBRC, SENSITIVITY LIKE SOOD-OBJSNS, MODIFIABLE LIKE SOOD-OBJCP, " bzw. sood-fixed PROCESSTYPE LIKE SOOD-VMTYP, PROCESSELEMENT LIKE SOOD-ACNAM, PROCSKIPFIRSTSCREEN LIKE SOOD-SKIPS, PROCMEMORYID LIKE SOS01-S_MEMID, PROCSETGETTAB(255) OCCURS 0, PROCIMPORTPARAMTAB(255) OCCURS 0, OBJCONTTAB LIKE SOLI-LINE OCCURS 0.data: extct like sood-extct. "TR070199 4.6adata: obj_hd_disp like sood2. "TR 6.10 UNICODEdata: objheadtab like soli occurs 1. "TR 6.10 UNICODE IF OBJECT-PRIVATE-PROC_GENERAL_CHANGED NE 'X'.* Refresh processing attributes from database (if sensible) FOLDER_ID-OBJTP = OBJECT-KEY-FOLDERTYPE. FOLDER_ID-OBJYR = OBJECT-KEY-FOLDERYEAR. FOLDER_ID-OBJNO = OBJECT-KEY-FOLDERNUMBER. OBJECT_ID-OBJTP = OBJECT-KEY-TYPE. OBJECT_ID-OBJYR = OBJECT-KEY-YEAR. OBJECT_ID-OBJNO = OBJECT-KEY-NUMBER. PERFORM GET_DOC_ATTRIBUTES TABLES OBJCONTTAB PROCSETGETTAB PROCIMPORTPARAMTAB objheadtab "TR6.10 UNICODE USING FOLDER_ID OBJECT_ID OBJECT-KEY-FORWARDERNAME CHANGING PROCESSTYPE PROCESSELEMENT PROCSKIPFIRSTSCREEN PROCMEMORYID SENSITIVITY MODIFIABLE extct "TR070199 4.6a obj_hd_disp "TR6.10 UNICODE RCODE. CASE RCODE. WHEN 0.* Everything OK. Do nothing. WHEN OTHERS. EXIT_PROPERTY_NOT_FOUND. ENDCASE. ELSE. PROCSKIPFIRSTSCREEN = OBJECT-PROCSKIPFIRSTSCREEN. ENDIF. SWC_SET_ELEMENT CONTAINER 'ProcSkipFirstScreen' PROCSKIPFIRSTSCREEN.END_PROPERTY.GET_PROPERTY PROCMEMORYID CHANGING CONTAINER.DATA: OBJECT_ID LIKE SOODK, FOLDER_ID LIKE SOODK, RCODE LIKE SY-SUBRC, SENSITIVITY LIKE SOOD-OBJSNS, MODIFIABLE LIKE SOOD-OBJCP, " bzw. sood-fixed PROCESSTYPE LIKE SOOD-VMTYP, PROCESSELEMENT LIKE SOOD-ACNAM, PROCSKIPFIRSTSCREEN LIKE SOOD-SKIPS, PROCMEMORYID LIKE SOS01-S_MEMID, PROCSETGETTAB(255) OCCURS 0, PROCIMPORTPARAMTAB(255) OCCURS 0, OBJCONTTAB LIKE SOLI-LINE OCCURS 0.data: extct like sood-extct. "TR070199 4.6adata: obj_hd_disp like sood2. "TR 6.10 UNICODEdata: objheadtab like soli occurs 1. "TR 6.10 UNICODE IF OBJECT-PRIVATE-PROC_MEMID_CHANGED NE 'X'.* Refresh processing attributes from database (if sensible) FOLDER_ID-OBJTP = OBJECT-KEY-FOLDERTYPE. FOLDER_ID-OBJYR = OBJECT-KEY-FOLDERYEAR. FOLDER_ID-OBJNO = OBJECT-KEY-FOLDERNUMBER. OBJECT_ID-OBJTP = OBJECT-KEY-TYPE. OBJECT_ID-OBJYR = OBJECT-KEY-YEAR. OBJECT_ID-OBJNO = OBJECT-KEY-NUMBER. PERFORM GET_DOC_ATTRIBUTES TABLES OBJCONTTAB PROCSETGETTAB PROCIMPORTPARAMTAB objheadtab "TR6.10 UNICODE USING FOLDER_ID OBJECT_ID OBJECT-KEY-FORWARDERNAME CHANGING PROCESSTYPE PROCESSELEMENT PROCSKIPFIRSTSCREEN PROCMEMORYID SENSITIVITY MODIFIABLE extct "TR070199 4.6a obj_hd_disp "TR6.10 UNICODE RCODE. CASE RCODE. WHEN 0.* Everything OK. Do nothing. WHEN OTHERS. EXIT_PROPERTY_NOT_FOUND. ENDCASE. ELSE. PROCMEMORYID = OBJECT-PROCMEMORYID. ENDIF. SWC_SET_ELEMENT CONTAINER 'ProcMemoryID' PROCMEMORYID.END_PROPERTY.GET_PROPERTY PROCSETGETTAB CHANGING CONTAINER.DATA: OBJECT_ID LIKE SOODK, FOLDER_ID LIKE SOODK, LIN LIKE SY-TABIX, RCODE LIKE SY-SUBRC, SENSITIVITY LIKE SOOD-OBJSNS, MODIFIABLE LIKE SOOD-OBJCP, " bzw. sood-fixed PROCESSTYPE LIKE SOOD-VMTYP, PROCESSELEMENT LIKE SOOD-ACNAM, PROCSKIPFIRSTSCREEN LIKE SOOD-SKIPS, PROCMEMORYID LIKE SOS01-S_MEMID, PROCSETGETTAB(255) OCCURS 0, NEWPROCSETGETTAB(255) OCCURS 0, PROCIMPORTPARAMTAB(255) OCCURS 0, OBJCONTTAB LIKE SOLI-LINE OCCURS 0.data: obj_hd_disp like sood2. "TR 6.10 UNICODEdata: extct like sood-extct. "TR070199 4.6adata: objheadtab like soli occurs 1. "TR 6.10 UNICODE IF OBJECT-PRIVATE-PROC_PARA_CHANGED NE 'X'.* Refresh processing attributes from database (if sensible) FOLDER_ID-OBJTP = OBJECT-KEY-FOLDERTYPE. FOLDER_ID-OBJYR = OBJECT-KEY-FOLDERYEAR. FOLDER_ID-OBJNO = OBJECT-KEY-FOLDERNUMBER. OBJECT_ID-OBJTP = OBJECT-KEY-TYPE. OBJECT_ID-OBJYR = OBJECT-KEY-YEAR. OBJECT_ID-OBJNO = OBJECT-KEY-NUMBER. PERFORM GET_DOC_ATTRIBUTES TABLES OBJCONTTAB PROCSETGETTAB PROCIMPORTPARAMTAB objheadtab "TR6.10 UNICODE USING FOLDER_ID OBJECT_ID OBJECT-KEY-FORWARDERNAME CHANGING PROCESSTYPE PROCESSELEMENT PROCSKIPFIRSTSCREEN PROCMEMORYID SENSITIVITY MODIFIABLE extct "TR070199 4.6a obj_hd_disp "TR6.10 UNICODE RCODE. CASE RCODE. WHEN 0.* Everything OK. Do nothing. WHEN OTHERS. EXIT_PROPERTY_NOT_FOUND. ENDCASE. ELSE. PROCSETGETTAB[] = OBJECT-PROCSETGETTAB[]. ENDIF. SWC_CLEAR_CONTAINER CONTAINER. PERFORM SELC_TO_ID_VALUE TABLES PROCSETGETTAB NEWPROCSETGETTAB. SWC_SET_TABLE CONTAINER 'ProcSetGetTab' NEWPROCSETGETTAB.END_PROPERTY.GET_PROPERTY PROCIMPORTPARAMTAB CHANGING CONTAINER.DATA: OBJECT_ID LIKE SOODK, FOLDER_ID LIKE SOODK, LIN LIKE SY-TABIX, RCODE LIKE SY-SUBRC, SENSITIVITY LIKE SOOD-OBJSNS, MODIFIABLE LIKE SOOD-OBJCP, " bzw. sood-fixed PROCESSTYPE LIKE SOOD-VMTYP, PROCESSELEMENT LIKE SOOD-ACNAM, PROCSKIPFIRSTSCREEN LIKE SOOD-SKIPS, PROCMEMORYID LIKE SOS01-S_MEMID, PROCSETGETTAB(255) OCCURS 0, PROCIMPORTPARAMTAB(255) OCCURS 0, OBJCONTTAB LIKE SOLI-LINE OCCURS 0.data: extct like sood-extct. "TR070199 4.6adata: obj_hd_disp like sood2. "TR 6.10 UNICODEdata: objheadtab like soli occurs 1. "TR 6.10 UNICODE IF OBJECT-PRIVATE-PROC_PARB_CHANGED NE 'X'.* Refresh processing attributes from database (if sensible) FOLDER_ID-OBJTP = OBJECT-KEY-FOLDERTYPE. FOLDER_ID-OBJYR = OBJECT-KEY-FOLDERYEAR. FOLDER_ID-OBJNO = OBJECT-KEY-FOLDERNUMBER. OBJECT_ID-OBJTP = OBJECT-KEY-TYPE. OBJECT_ID-OBJYR = OBJECT-KEY-YEAR. OBJECT_ID-OBJNO = OBJECT-KEY-NUMBER. PERFORM GET_DOC_ATTRIBUTES TABLES OBJCONTTAB PROCSETGETTAB PROCIMPORTPARAMTAB objheadtab "TR6.10 UNICODE USING FOLDER_ID OBJECT_ID OBJECT-KEY-FORWARDERNAME CHANGING PROCESSTYPE PROCESSELEMENT PROCSKIPFIRSTSCREEN PROCMEMORYID SENSITIVITY MODIFIABLE extct "TR070199 4.6a obj_hd_disp "TR6.10 UNICODE RCODE. CASE RCODE. WHEN 0.* Everything OK. Do nothing. WHEN OTHERS. EXIT_PROPERTY_NOT_FOUND. ENDCASE. ELSE. PROCIMPORTPARAMTAB[] = OBJECT-PROCIMPORTPARAMTAB[]. ENDIF. SWC_CLEAR_CONTAINER CONTAINER. SWC_SET_TABLE CONTAINER 'ProcImportParamTab' PROCIMPORTPARAMTAB.END_PROPERTY.GET_PROPERTY SENSITIVITY CHANGING CONTAINER.DATA: OBJECT_ID LIKE SOODK, FOLDER_ID LIKE SOODK, RCODE LIKE SY-SUBRC, SENSITIVITY LIKE SOOD-OBJSNS, MODIFIABLE LIKE SOOD-OBJCP, " bzw. sood-fixed PROCESSTYPE LIKE SOOD-VMTYP, PROCESSELEMENT LIKE SOOD-ACNAM, PROCSKIPFIRSTSCREEN LIKE SOOD-SKIPS, PROCMEMORYID LIKE SOS01-S_MEMID, PROCSETGETTAB(255) OCCURS 0, PROCIMPORTPARAMTAB(255) OCCURS 0, OBJCONTTAB LIKE SOLI-LINE OCCURS 0.data: extct like sood-extct. "TR070199 4.6adata: obj_hd_disp like sood2. "TR 6.10 UNICODEdata: objheadtab like soli occurs 1. "TR 6.10 UNICODE IF OBJECT-PRIVATE-SENSITIVITY_CHANGED NE 'X'.* Refresh processing attributes from database (if sensible) FOLDER_ID-OBJTP = OBJECT-KEY-FOLDERTYPE. FOLDER_ID-OBJYR = OBJECT-KEY-FOLDERYEAR. FOLDER_ID-OBJNO = OBJECT-KEY-FOLDERNUMBER. OBJECT_ID-OBJTP = OBJECT-KEY-TYPE. OBJECT_ID-OBJYR = OBJECT-KEY-YEAR. OBJECT_ID-OBJNO = OBJECT-KEY-NUMBER. PERFORM GET_DOC_ATTRIBUTES TABLES OBJCONTTAB PROCSETGETTAB PROCIMPORTPARAMTAB objheadtab "TR6.10 UNICODE USING FOLDER_ID OBJECT_ID OBJECT-KEY-FORWARDERNAME CHANGING PROCESSTYPE PROCESSELEMENT PROCSKIPFIRSTSCREEN PROCMEMORYID SENSITIVITY MODIFIABLE extct "TR070199 4.6a obj_hd_disp "TR6.10 UNICODE RCODE. CASE RCODE. WHEN 0.* Everything OK. Do nothing. WHEN OTHERS. EXIT_PROPERTY_NOT_FOUND. ENDCASE. ELSE. SENSITIVITY = OBJECT-SENSITIVITY. ENDIF. SWC_SET_ELEMENT CONTAINER 'Sensitivity' SENSITIVITY.END_PROPERTY.GET_PROPERTY MODIFIABLE CHANGING CONTAINER.DATA: OBJECT_ID LIKE SOODK, FOLDER_ID LIKE SOODK, RCODE LIKE SY-SUBRC, SENSITIVITY LIKE SOOD-OBJSNS, MODIFIABLE LIKE SOOD-OBJCP, " bzw. sood-fixed PROCESSTYPE LIKE SOOD-VMTYP, PROCESSELEMENT LIKE SOOD-ACNAM, PROCSKIPFIRSTSCREEN LIKE SOOD-SKIPS, PROCMEMORYID LIKE SOS01-S_MEMID, PROCSETGETTAB(255) OCCURS 0, PROCIMPORTPARAMTAB(255) OCCURS 0, OBJCONTTAB LIKE SOLI-LINE OCCURS 0.data: extct like sood-extct. "TR070199 4.6adata: obj_hd_disp like sood2. "TR 6.10 UNICODEdata: objheadtab like soli occurs 1. "TR 6.10 UNICODE IF OBJECT-PRIVATE-MODIF_CHANGED NE 'X'.* Refresh processing attributes from database (if sensible) FOLDER_ID-OBJTP = OBJECT-KEY-FOLDERTYPE. FOLDER_ID-OBJYR = OBJECT-KEY-FOLDERYEAR. FOLDER_ID-OBJNO = OBJECT-KEY-FOLDERNUMBER. OBJECT_ID-OBJTP = OBJECT-KEY-TYPE. OBJECT_ID-OBJYR = OBJECT-KEY-YEAR. OBJECT_ID-OBJNO = OBJECT-KEY-NUMBER. PERFORM GET_DOC_ATTRIBUTES TABLES OBJCONTTAB PROCSETGETTAB PROCIMPORTPARAMTAB objheadtab "TR6.10 UNICODE USING FOLDER_ID OBJECT_ID OBJECT-KEY-FORWARDERNAME CHANGING PROCESSTYPE PROCESSELEMENT PROCSKIPFIRSTSCREEN PROCMEMORYID SENSITIVITY MODIFIABLE extct "TR070199 4.6a obj_hd_disp "TR6.10 UNICODE RCODE. CASE RCODE. WHEN 0.* Everything OK. Do nothing. WHEN OTHERS. EXIT_PROPERTY_NOT_FOUND. ENDCASE. ELSE. MODIFIABLE = OBJECT-MODIFIABLE. ENDIF. SWC_SET_ELEMENT CONTAINER 'Modifiable' MODIFIABLE.END_PROPERTY.************************************************************************* Save************************************************************************BEGIN_METHOD SAVE CHANGING CONTAINER.DATA: SAVE(255), CHANGED_OBJECT(255), TYPE(7), FOLDER_ID LIKE SOODK, OBJECT_ID LIKE SOODK, OBJECT_HD_CHANGE LIKE SOOD1, SOFM_KEY LIKE SOFMK, OFFICE_ID LIKE SOUDK, SOMG_KEY LIKE SOMGK, SOMG_APPL_KEY LIKE SOMGK, SOMG_DATA LIKE SOMGD, SOMG_APPL_DATA LIKE SOMGD, APL_ID LIKE SOMG-USED_BY, WA_APPL_OBJECT LIKE SOMG-USED_BY, SOMG_TAB LIKE SOMG OCCURS 0 WITH HEADER LINE, ADDRESS_NAME LIKE SOUD3-ADRNAME, SOMG_KEY_TAB LIKE SOMGK OCCURS 0 WITH HEADER LINE, REC_KEY LIKE SWOTOBJID, BOR_OBJ_ID LIKE SWOTOBJID, RECIPIENT_TAB TYPE SWC_OBJECT OCCURS 0, REC_HANDLE TYPE SWC_OBJECT, RECIPIENT TYPE SWC_OBJECT, NOT_PERSISTENT, LIN LIKE SY-TABIX, LINK_RCODE LIKE SY-SUBRC, ALL_BINDING_DONE LIKE SONV-FLAG VALUE 'X', RCODE LIKE SY-SUBRC, MSGV1 LIKE SY-MSGV1, MSGV2 LIKE SY-MSGV2, MSGV3 LIKE SY-MSGV3, MSGV4 LIKE SY-MSGV4.DATA: RELATIONTYPE LIKE BRELTYP-RELTYPE, OBJ_ROLEA LIKE BORIDENT, OBJ_ROLEB LIKE BORIDENT, PUBLISHED_OBJECTS LIKE SWOTOBJID OCCURS 0 WITH HEADER LINE.DATA: DARK_SOFM_ID LIKE SOFMK, OBJ_ROLEB2 LIKE BORIDENT, BOR_OBJ_ID_DARK LIKE SWOTOBJID. SWC_CONTAINER LOCAL_CONTAINER.* Look if key is filled IF OBJECT-KEY-FOLDERTYPE IS INITIAL AND OBJECT-KEY-FOLDERYEAR IS INITIAL AND OBJECT-KEY-FOLDERNUMBER IS INITIAL AND OBJECT-KEY-TYPE IS INITIAL AND OBJECT-KEY-YEAR IS INITIAL AND OBJECT-KEY-NUMBER IS INITIAL AND OBJECT-KEY-FORWARDERNAME IS INITIAL.* Exception EXIT_RETURN '2640' SPACE SPACE SPACE SPACE. ENDIF.* Look if corresponding SOFM object exists SWC_CALL_METHOD SELF 'ExistenceCheck' LOCAL_CONTAINER. CASE SY-SUBRC. WHEN 0. WHEN '0001'. EXIT_RETURN 3826 SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4. WHEN OTHERS. EXIT_RETURN SY-SUBRC SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4. ENDCASE. SWC_CLEAR_CONTAINER LOCAL_CONTAINER.* Look if message object is already persistent IF OBJECT-PRIVATE-SOMG_KEY IS INITIAL "TR100798 AND OBJECT-PRIVATE-PERSIST_CHECKED = SPACE. "TR100798 MOVE: OBJECT-KEY-FOLDERTYPE TO SOFM_KEY-FOLTP, OBJECT-KEY-FOLDERYEAR TO SOFM_KEY-FOLYR, OBJECT-KEY-FOLDERNUMBER TO SOFM_KEY-FOLNO, OBJECT-KEY-TYPE TO SOFM_KEY-DOCTP, OBJECT-KEY-YEAR TO SOFM_KEY-DOCYR, OBJECT-KEY-NUMBER TO SOFM_KEY-DOCNO. PERFORM CONVERT_SAPNAM_TO_OFFICE_ID USING OBJECT-KEY-FORWARDERNAME CHANGING OFFICE_ID RCODE. IF RCODE NE 0. EXIT_RETURN '2013' 'SOFM-Key' "#EC NOTEXT OBJECT-KEY-FORWARDERNAME SPACE SPACE. ENDIF. MOVE: OFFICE_ID-USRTP TO SOFM_KEY-FORTP, OFFICE_ID-USRYR TO SOFM_KEY-FORYR, OFFICE_ID-USRNO TO SOFM_KEY-FORNO. NOT_PERSISTENT = 'X'. PERFORM SOMG_SELMSG(SAPFSSO5) TABLES SOMG_TAB "TR100798 USING SOFM_KEY CHANGING RCODE. IF RCODE = 0. LOOP AT SOMG_TAB WHERE OBJTP = 'MSG'. MOVE-CORRESPONDING SOMG_TAB TO SOMG_KEY. MOVE-CORRESPONDING SOMG_TAB TO SOMG_DATA. MOVE SOMG_KEY TO OBJECT-PRIVATE-SOMG_KEY. NOT_PERSISTENT = SPACE. EXIT. ENDLOOP. ENDIF. OBJECT-PRIVATE-PERSIST_CHECKED = 'X'. ELSE. IF OBJECT-PRIVATE-SOMG_KEY IS INITIAL.* * This is only possible if persist_checked = 'X'* * That means it is already checked that object is not persistent SOMG_KEY = SPACE. NOT_PERSISTENT = 'X'. ELSE.* * SOMG_KEY is filled => object is persistent SOMG_KEY = OBJECT-PRIVATE-SOMG_KEY. NOT_PERSISTENT = SPACE. ENDIF. ENDIF. "TR100798* Handle the 2 cases: object is persistent or not IF NOT_PERSISTENT = SPACE.* * Object is already persistent* * Look if object is changed IF OBJECT-PRIVATE-CHANGED = 'X'.* * Object is changed (and therefore enqueued). Save changes* * Save MESSAGE attributes PERFORM FILL_SOMG_DATA CHANGING SOMG_DATA. PERFORM SOMG_UPDATE(SAPFSSO5) USING SOMG_KEY SOMG_DATA RCODE. IF RCODE NE 0. EXIT_RETURN '2013' 'SOMG_UPDATE' 'RSSOOT05' SPACE SPACE. ENDIF.* Look at inserted and removed objects LOOP AT OBJECT-PRIVATE-CHANGED_OBJECTS INTO CHANGED_OBJECT.* Delete removed (associated) recipients IF CHANGED_OBJECT(7) = 'DEL_RCP'. MOVE CHANGED_OBJECT+7 TO SOMG_KEY.* * Delete ZAV reference PERFORM SOMG_SELECT(SAPFSSO5) USING SOMG_KEY SOMG_DATA CHANGING RCODE. IF RCODE = 0. PERFORM DELETE_ZAV_REFERENCE(RSSOOT04) USING SOMG_KEY SOMG_DATA-RCP_ID_TP SOMG_DATA-RCP_ID_NO CHANGING RCODE. ENDIF.* * Delete SOMG entry PERFORM SOMG_DELETE(SAPFSSO5) USING SOMG_KEY CHANGING RCODE. IF RCODE NE 0.* Do nothing? ENDIF. DELETE OBJECT-PRIVATE-CHANGED_OBJECTS. ENDIF. ENDLOOP. ELSE.* * Object is up to date.* Do nothing (changes on associated recipients are saved below) ENDIF. ELSE.* * Object is not persistent yet. Insert it in SOMG* * Create new SOMG key SOMG_KEY-OBJTP = 'MSG'. PERFORM GET_NEXT_NUMBER(SAPFSSO2) USING SOMG_KEY-OBJTP CHANGING SOMG_KEY-OBJNO SOMG_KEY-OBJYR RCODE. IF RCODE NE 0. EXIT_RETURN '2013' 'GET_NEXT_NUMBER' 'MSG' SPACE SPACE. ENDIF. PERFORM FILL_SOMG_DATA CHANGING SOMG_DATA.* Insert in SOMG PERFORM SOMG_INSERT(SAPFSSO5) USING SOMG_KEY SOMG_DATA CHANGING RCODE. IF RCODE NE 0. EXIT_RETURN '2013' 'SOMG_INSERT' 'RSSOOT05' SPACE SPACE. ENDIF.* Fill in SOMG key in object-private-somg_key. MOVE SOMG_KEY TO OBJECT-PRIVATE-SOMG_KEY.* Mark that persistance is checked OBJECT-PRIVATE-PERSIST_CHECKED = 'X'. ENDIF.* Save changes of associated Recipients SWC_CLEAR_CONTAINER LOCAL_CONTAINER. SWC_SET_ELEMENT LOCAL_CONTAINER 'MasterMessage' OBJECT-KEY. LOOP AT OBJECT-RECIPIENTS INTO REC_HANDLE WHERE NOT HANDLE IS INITIAL. SWC_CALL_METHOD REC_HANDLE 'Save' LOCAL_CONTAINER. IF SY-SUBRC NE 0. EXIT_RETURN '2621' SY-SUBRC SPACE SPACE SPACE. ENDIF. ENDLOOP.* Save changes of processing parameters IF OBJECT-PRIVATE-DOC_CHANGED = 'X'. FOLDER_ID-OBJTP = OBJECT-KEY-FOLDERTYPE. FOLDER_ID-OBJYR = OBJECT-KEY-FOLDERYEAR. FOLDER_ID-OBJNO = OBJECT-KEY-FOLDERNUMBER. OBJECT_ID-OBJTP = OBJECT-KEY-TYPE. OBJECT_ID-OBJYR = OBJECT-KEY-YEAR. OBJECT_ID-OBJNO = OBJECT-KEY-NUMBER. PERFORM UPDATE_DOCUMENT_DATA TABLES OBJECT-PROCSETGETTAB OBJECT-PROCIMPORTPARAMTAB OBJECT-PRIVATE-OBJCONT USING FOLDER_ID OBJECT_ID OBJECT-KEY-FORWARDERNAME OBJECT-PROCMEMORYID OBJECT-PROCESSTYPE OBJECT-PROCESSELEMENT OBJECT-PROCSKIPFIRSTSCREEN OBJECT-SENSITIVITY OBJECT-MODIFIABLE OBJECT-PRIVATE-DESCRIPTION CHANGING RCODE MSGV1 MSGV2 MSGV3 MSGV4. IF RCODE NE 0. EXIT_RETURN RCODE MSGV1 MSGV2 MSGV3 MSGV4. ENDIF.* * Clear central flag for document changed at once CLEAR OBJECT-PRIVATE-DOC_CHANGED.* * Clear special flags for special document attributes at once PERFORM CLEAR_DOC_FLAGS.* * Reset property buffer of SOFM "TR210199 4.6a PERFORM CALL_SOFM_METHOD "TR210199 4.6a TABLES CONTAINER "TR210199 4.6a USING 'ResetPropertyBuffer' "TR210199 4.6a CHANGING rcode "TR210199 4.6a MSGV1 "TR210199 4.6a MSGV2 "TR210199 4.6a MSGV3 "TR210199 4.6a MSGV4. "TR210199 4.6a ENDIF.* * Create links between application object(s) and message object* * Get BOR-ID of message object CLEAR BOR_OBJ_ID. SWC_OBJECT_TO_PERSISTENT SELF BOR_OBJ_ID. MOVE-CORRESPONDING BOR_OBJ_ID TO OBJ_ROLEB.* * Set type of relation RELATIONTYPE = 'OFFD'.* * If there is no application object given, look for published objects* * But only for new message objects* DESCRIBE TABLE OBJECT-APPLOBJECTIDS LINES LIN. "986653 >>* IF LIN = 0* AND NOT_PERSISTENT NE SPACE.* CALL FUNCTION 'SWU_OBJECT_GET'* TABLES* PUBLISHED_OBJECTS = PUBLISHED_OBJECTS* EXCEPTIONS* OBJECT_NOT_FOUND = 1* OTHERS = 2.* IF SY-SUBRC 0.** Do nothing* ELSE.* LOOP AT PUBLISHED_OBJECTS.* APL_ID = PUBLISHED_OBJECTS.* APPEND APL_ID TO OBJECT-APPLOBJECTIDS.* ENDLOOP.* ENDIF.* ENDIF. "986653 >>* check if document is changeable at all data mod like sood-objcp. data ls_sood_key like soodk. data ls_sood_dat like soodd. ls_sood_key-objtp = object-key-type. ls_sood_key-objyr = object-key-year. ls_sood_key-objno = object-key-number. CALL FUNCTION 'SO_SOOD_READ' EXPORTING object_id = ls_sood_key IMPORTING SOOD_DAT = ls_sood_dat EXCEPTIONS OBJECT_NOT_EXIST = 1 X_ERROR = 2 OTHERS = 3 . IF sy-subrc 0. EXIT_RETURN '2648' space space SPACE SPACE. ENDIF. if ls_sood_dat-objsnd = 'X'.* swc_get_property self 'Modifiable' mod.* if mod ne 'X'. EXIT_RETURN '2639' 'EditorSettings' editor_settings SPACE SPACE.* endif. endif. editor_settings = 'D'. raw_editor = 'X'. note_flag = space. else. EXIT_RETURN '2639' 'EditorSettings' editor_settings SPACE SPACE. endif. "insert 731327