[3]תוכני באמצעות הדוגמהאת נבצע( התקנית/רגילה הדוגמה תStandard Example Program:)-RSWFMCEVENTSAMPLE,ראשית .
( נעתיקCopyכ התוכנית את )( לקוח פיתוחCustomer Development:)-ZRSWFMCEVENTSAMPLE.
REPORT ZRSWFMCEVENTSAMPLE .
* This report demonstrates the creation of a fixed event. In this case, event
* BUS2032-CHANGED will be created. No NAST parameters will be considered because
* CREATE_EVENT is designed as a processing routine for output medium 8 which carries no
* parameters. Setup: copy this report and modify it so that your event will be created.
* Set up an output type for output medium 8 and assign your copied report as the
* processing program. Create a condition record for your output type and medium 8
* in order to get automatic output determination.
SWCkagePac".>CNTN01<INCLUDE
tables: NAST.
*---------------------------------------------------------------------*
* FORM create_event :- CREATE_EVENT is called by output control *
*---------------------------------------------------------------------*
* form create_event using returncode like SY-SUBRC us_screen type c.
* LT_CONTAINER passes parameters to the event.
* Add parameters if your event needs them.
עלהוראת/הנחיתמקרו הגדרת(nstructionIacroM):-SWC_CONTAINER:ראה-( מקרו הגדרת הוראות/הנחיותtionsMacro Instruc)
( "כלי/"מיכל פעילות הליך עבורContainer Processing[],הכרזת/הגדרת( "כלי/"מיכלContainer Declarationו )-איתחול
( "כלי/"מיכלer InitializationContain),גישת( מקרו הגדרת הוראות/הנחיותMacro Instructions Accessing:ל )-אובייקטים(
Objects,)( מאפייניםAttributesו )-( שיטותMethods),( נכללת תוכניתrogramPncludeI):->CNTN01<;
SWC_CONTAINER lt_container.
4
4
4
4
5
6
16.
DATA:
l_objkey like SWEINSTCOU-OBJKEYvalue '1163',
l_creator like SWHACTOR,
l_msgv1 like sy-msgv1,
l_msgv2 like sy-msgv2,
l_eventid like SWEDUMEVID-EVTID,
* the next line defines the object type that will be used
l_objtype like SWETYPECOU-OBJTYPE value 'BUS1001006', " 'BUS2032',
* the next line defines the event to be created
l_event like SWETYPECOU-EVENT value 'CREATED', "'CHANGED'.
returncode like SY-SUBRC,
us_screen type c.
* no preview available
check us_screen eq space.
* use NAST object key -- you might need to change this if your event is based on a
* completely different object
* l_objkey = NAST-OBJKY.
l_creator-otype = 'US'.
l_creator-objid = SY-UNAME.
CALL FUNCTION 'SWE_EVENT_CREATE'
EXPORTING
OBJTYPE = l_objtype
OBJKEY = l_objkey
EVENT = l_event
CREATOR = l_creator
IMPORTING
EVENT_ID = l_eventid
TABLES
,כעתהלי בדיקתךפעילות/( העבודה""זרימתWorkflow Test):-הזנקתפעילות הליך/העבודה ""זרימת(Workflow Trigger)בעתעריכת-
( האשרור של מערכת מצב/מעמד שינוייNotification System Status Change):-OSNO.
( הטרנזקציה/פעילותTransaction:)-SE37בונה/מתאם [ההאפשר / שימוש/הפעילות( ות
Function Builderהטרנ /] )( זקציה/פעילותTransaction:)-SE38:ה תוכניות עורך [-
ABAP( [ABAP Editor)]
עריכת-שינויי[ ניפוק/רכישה דרישת/בקשת שיחרור קוד/הוראתRelease Code Change(Purchase Requisition)PReq]באמצעות
( [ תצורה שימוש/הפעילות/האפשרות מאפיין/מודולCustom Function Moduleשימוש/פעילות/אפשרות מאפיין/מודול )Z(Z
Function Module:)-"Z*"מערכת שימוש/פעילות/אפשרות מאפייני/מודולי את הכולל ,]SAPהתקנית/רגילה(Standard SAP
Function Modules:)-ME_READ_REQUISITION_EXT,ME_UPDATE_REQUISITIONו-
ME_UPDATE_REQUISITION_CHNGDOC
עריכת-שינוייניפו דרישת/בקשת שיחרור קוד/הוראת[ ק/רכישהRelease
Code Change(Purchase Requisition)PReq]באמצעות
( [ תצורה שימוש/הפעילות/האפשרות מאפיין/מודולCustom Function
Moduleשימוש/פעילות/אפשרות מאפיין/מודול )Z(Z Function
Module:)-"Z*"שימוש/פעילות/אפ מאפייני/מודולי את הכולל ,]שרות
מערכתSAPהתקנית/רגילה(Standard SAP Function Modules:)-
ME_READ_REQUISITION_EXT,ME_UPDATE_REQUISITIONו-
ME_UPDATE_REQUISITION_CHNGDOC
להשגת/קבלתפרטידרישת/בקשתניפוק/רכישה[Details Get(Purchase Requisition)PReq]:ב להשתמש ניתן ,-[1]מאפיין/מודול
שימוש/פעילות/אפשרותמערכתSAPהתקנית/רגילה(Standard SAP Function Module):-ME_READ_REQUISITION_EXT;
[2]מאפיין/שימוש/פעילות/אפשרות מודולמערכתSAPהתקנית/רגילה(Standard SAP Function Module):-
ME_UPDATE_REQUISITIONל משמשתעריכת-נתוני שינויידרישת/בקשתניפוק/רכישה[Data Change(Purchase Requisition)
PReq]עדכון באמצעותבסיסי טבלת-נתונים( "ה"שקופהTransparent Database Table Updating):-EBANפ [ריטדרישת/בקשת
[ ניפוק/רכישהItem(Purchase Requisition)PReq];[3]מאפיין/שימוש/פעילות/אפשרות מודולמערכתSAPהתקנית/רגילה
(Standard SAP Function Module):-ME_UPDATE_REQUISITION_CHNGDOCל משמשתעדכוןטבלאותעריכת מסמכי-( השינויים
Change Documents Tables Update):-בסיסי טבלת-נתוניםה( ""שקופהTransparent Database Table):-CDHDR[כותר/תמסמך
עריכת-( שינוייםChange Document Header)]ו-בסיסי טבלת-נתוניםה( ""שקופהTransparent Database Table):-CDPOS[פריטי
עריכת מסמך-( שינוייםChange Document Items)]–ל בהתאםעדכוןבסיסי טבלת-נתוניםה"שקופ( "הTransparent Database Table
Updating):-EBANפריט [דרישת/בקשת[ ניפוק/רכישהItem(Purchase Requisition)PReq]–:ראה-
( [ החומרים ניהול מודול/אפיוןanagementMaterialsM)MM[]ה באמצעות ;דוגמה(xampleE)לבצע למשל ניתן ,להלן המוצגתדחיה
ממוכנת/אוטומטית(Automatic Rejection Perform)( במקוםInstead)דחיהידנית(Manually Rejecting)במסגרתהטרנזקציה/פעילות
(Transaction:)-ME54N[שחרורדרישת/בקשתניפוק/רכישה[Release(Purchase Requisition)PReq]:ב שימוש נעשה ;-2מתוך3
מאפייני/מודושימוש/פעילות/אפשרות לייישום:ה מערכת-SAP( התקנית/רגילהStandard SAP Function Modules)במסגרת
26.
תצורה שימוש/הפעילות/האפשרות מאפיין/מודול[(CustomFunction Module)שימוש/פעילות/אפשרות מאפיין/מודולZ(Z Function
Module:] )-.
FUNCTION ZME_UPDATE_REQU_RELEASE_STATUS.
*"----------------------------------------------------------------------
*"*"Local Interface:
*" IMPORTING
*" REFERENCE(IV_BANFN) TYPE BANFN
*" REFERENCE(IV_BNFPO) TYPE BNFPO
*" REFERENCE(IV_FRGZU) TYPE FRGZU
*"----------------------------------------------------------------------
*"*"Local Interface:
*" IMPORTING
*" REFERENCE(IV_BANFN) TYPE BANFN
27.
*" REFERENCE(IV_BNFPO) TYPEBNFPO
*" REFERENCE(IV_FRGZU) TYPE FRGZU
*&---------------------------------------------------------------------*
* To get PR details, use FM ME_READ_REQUISITION_EXT ; So sequence will be -
* ME_READ_REQUISITION_EXT, ME_UPDATE_REQUISITION ; Function Module ME_UPDATE_REQUISITION
* is used to change the Purchase Requisition data by updating the EBAN table. Subsequent
* use the FM ME_UPDATE_REQUISITION_CHNGDOC to update the change document
* tables (cdhdr, cdpos) corresponding with updating EBAN table
*&---------------------------------------------------------------------*
DATA: GT_XEBAN TYPE TABLE OF UEBAN, GS_XEBAN LIKE LINE OF GT_XEBAN,
GT_XEBKN TYPE TABLE OF UEBKN, GS_XEBKN LIKE LINE OF GT_XEBKN,
GT_YEBAN TYPE TABLE OF UEBAN, GS_YEBAN LIKE LINE OF GT_YEBAN,
GT_YEBKN TYPE TABLE OF UEBKN, GS_YEBKN LIKE LINE OF GT_YEBKN,
GT_BAPIRET LIKE TABLE OF BAPIRET2 WITH HEADER LINE.
* GT_BAPIRET TYPE TABLE OF BAPIRET2, GS_BAPIRET LIKE LINE OF GT_BAPIRET.
REFRESH: GT_XEBAN, GT_XEBKN, GT_YEBAN, GT_YEBKN, GT_BAPIRET.
*
SELECT * INTO CORRESPONDING FIELDS OF TABLE GT_XEBAN FROM EBAN
WHERE BANFN = IV_BANFN AND BNFPO = IV_BNFPO.
*
SELECT * INTO CORRESPONDING FIELDS OF TABLE GT_XEBKN FROM EBKN
WHERE BANFN = IV_BANFN AND BNFPO = IV_BNFPO.
*
GT_YEBAN[] = GT_XEBAN[].
GT_YEBKN[] = GT_XEBKN[].
*
READ TABLE GT_XEBAN INTO GS_XEBAN INDEX 1.
*
GS_XEBAN-KZ = 'U' .
GS_XEBAN-FRGZU = IV_FRGZU.
* XEBAN-BANPR = V_WK_FIELD_VALUE . REL_CODE
*
MODIFY GT_XEBAN FROM GS_XEBAN INDEX 1.
*
CALL FUNCTION 'ME_UPDATE_REQUISITION'
TABLES
XEBAN = GT_XEBAN
XEBKN = GT_XEBKN
YEBAN = GT_YEBAN
YEBKN = GT_YEBKN.
*
CALL FUNCTION 'ME_UPDATE_REQUISITION_CHNGDOC'
TABLES
XEBAN = GT_XEBAN
XEBKN = GT_XEBKN
YEBAN = GT_YEBAN
YEBKN = GT_YEBKN.
*
CALL FUNCTION 'BAPI_TRANSACTION_COMMIT'
EXPORTING
WAIT = 'X'
IMPORTING
RETURN = GT_BAPIRET.
*
ENDFUNCTION.
בדיקתתצורה שימוש/הפעילות/האפשרות מאפיין/מודול[(Custom Function Module Test)שימוש/פעילות/אפשרות מאפיין/מודולZ(Z
Function Module):-"Z*"]במסגרת( הטרנזקציה/פעילותTransaction:)-SE37[בונה/מתאםה( האפשרות / שימוש/הפעילות
Function Builder] )ב השינויי ובחינת"רשומות/שורות/"כניסותנתוניבסיסי טבלת-נתונים( ""שקופהTransparent Database Table
Entries):-EBANפריט [דרישת/בקשת[ ניפוק/רכישהItem(Purchase Requisition)PReq]במסגרתהטרנזקציות/פעילויו( ת
nsransactioT:)-SE16,6NSE1,7SE1[ד( [ הנתונים פדפןrowserBataD)]:-
/הקשההקלדה-כפולהעל-גבישםשיטתה( מחלקהClass MethodName Double-Click):-
הקלדת/טעינתקוד/ההוראות תצורת( מחלקה שיטתClass Method Source Code Enter):-
METHOD IF_SWF_IFS_WORKITEM_EXIT~EVENT_RAISED.
DATA: lv_id TYPE sww_wiid,
:ראה-מערכת של העבודה "פעילות/"זרימת הליך "כלי/"מיכל תכני קריאתSAP(eads Rontentr CSAP Workflow Containe)באמצעות
:ה שפת שימוש/הפעילות/האפשרות מאפיין/מודול-ABAP(Function ModuleABAP:)-SAP_WAPI_READ_CONTAINER/ממשק
אובי:ה שפת יקטי-ABAP(ABAP Objects Interface)IF_SWF_IFS_PARAMETER_CONTAINER[]
lv_container TYPE REF TO IF_SWF_IFS_PARAMETER_CONTAINER,
lv_attach TYPE TABLE OF obj_record,
lv_folder_id TYPE SOODK,
lv_str TYPE string,
lv_size TYPE so_obj_len,
106.
wa_document_info TYPE SOFOLENTI1,
lv_dataTYPE SODOCCHGI1,
lv_objtype TYPE swotobjid-objtype,
lv_objkey TYPE swotobjid-objkey,
lv_return TYPE swotreturn,
lv_sofm TYPE swotrtime-object,
lv_objject TYPE obj_record,
tb_obj TYPE TABLE OF obj_record,
it_solix_tab1 TYPE solix_tab.
107.
שעל-אחר לעקוב יהייהשניתן מנתקוד/ההוראות תצורת( מחלקה שיטתClass Method Source Code)לבצע צורך יהייה ,ניפוי-שגיאות
ב( רקעerformPgebuDackgroundB)על-בסיסהגדרת/קביעתלולאה-אין-ס( ופיתetSoopLndlessE)-:ב למתואר בהתאם-ניפוי-
רכיב קוד/הוראות שגיאות( עבודה "פעילות/"זרימת הליך יebugDodeComponentsCorkflowW)באמצעות( הטרנזקציה/פעילות
Transaction:)-SM50[( הפעילות הליך של כללית סקירהverviewOrocessP[]
CALL FUNCTION 'ZSM50_DEBUG' EXPORTING Z_DEBUG_USER = 'DANIELCN'.
*
CHECK im_event_name = 'CREATED'.
* Fetch the workflow work item Id
CALL METHOD im_workitem_contextget_workitem_id RECEIVING re_workitem = lv_id.
* Fetch Container
CALL METHOD im_workitem_contextget_wi_container
RECEIVING re_container = lv_container.
* Read attachment to confirm that there is no duplication
* CLEAR LV_OBJ_RECORD.
TRY.
CALL METHOD lv_containerget
EXPORTING
name = '_ATTACH_OBJECTS'
IMPORTING
value = lv_attach.
CATCH: CX_SWF_CNT_ELEM_NOT_FOUND,
CX_SWF_CNT_ELEM_TYPE_CONFLICT,
CX_SWF_CNT_UNIT_TYPE_CONFLICT,
CX_SWF_CNT_CONTAINER.
ENDTRY.
*
IF lv_attach IS INITIAL.
CALL FUNCTION 'SO_FOLDER_ROOT_ID_GET'
EXPORTING
owner = SY-UNAME
region = 'B'
IMPORTING
folder_id = lv_folder_id.
* Create and set document:- Excel File Data Attachment Content
DO 5 TIMES.
CONCATENATE lv_str 'Hello' ',' 'my' ',' 'friend!' CL_ABAP_CHAR_UTILITIEScr_lf
INTO lv_str.
ENDDO.
תוכןסיפוח/צרופתנתוניקובץמערכתExcel(Excel File Data Attachment Content):-
* You can use CL_DOCUMENT_BCS class for this purpose
CALL METHOD mestring_to_solix
EXPORTING
iv_string = lv_str
iv_codepage = '4110'
IMPORTING
et_solix = it_solix_tab1
ev_size = lv_size.
lv_data-obj_name = 'Test Sending Attachments'.
lv_data-obj_descr = 'Attachment 1'.
lv_data-obj_langu = SY-LANGU.
lv_data-sensitivty = 'P'.
lv_data-doc_size = lv_size.
108.
CALL FUNCTION 'SO_DOCUMENT_INSERT_API1'
EXPORTING
folder_id= lv_folder_id
document_data = lv_data
document_type = 'XLS'
IMPORTING
document_info = wa_document_info
TABLES
contents_hex = it_solix_tab1
EXCEPTIONS
folder_not_exist = 1 document_type_not_exist = 2
operation_no_authorization = 3 parameter_error = 4
x_error = 5 enqueue_error = 6
OTHERS = 7.
* Populate object type and object key for create an instance
סוגתקני/רגיל עסקי אובייקט[Type(Business Object)Standard BO]:-SOFMמסמך {ה( טרנזקציה/פעילותTransaction
Document):-SBWP[מסמךאזורהעבודה/פעילותהעסקי( [Business Workplace Document)/מסמךשל ""המשרד תוכנתמערכת
:ה-SAP[(SAPOffice Document)/מסמךתיבת-של הכניסהמערכתSAP(SAP Inbox Document)]}
lv_objtype = 'SOFM'.
lv_objkey = wa_document_info-doc_id.
*
CALL FUNCTION 'SWO_CREATE'
EXPORTING
objtype = lv_objtype
objkey = lv_objkey
IMPORTING
object = lv_sofm
return = lv_return
EXCEPTIONS
no_remote_objects = 1 OTHERS = 2.
* Prepare for attaching the object to container
lv_objject-header = 'OBJH'.
lv_objject-type = 'SWO'.
lv_objject-handle = lv_sofm.
APPEND lv_objject TO tb_obj.
* Can be used for other workitems
CALL METHOD lv_containerset
EXPORTING
name = '_ATTACH_OBJECTS'
value = tb_obj[].
* This will add the attachment to email
CALL METHOD lv_containerset
EXPORTING
name = 'ATTACHMENTS'
value = tb_obj[].
* Commit the changes
CALL METHOD im_workitem_contextdo_commit_work.
ENDIF.
ENDMETHOD.
הוספתהמח שיטות( לקהClass Methods Add):הבאת-
109.
להלןצילומי-( מסכיםScreenshots)ו-קוד/הוראות תצורתשיטו(מחלקה תClass Methods Source Code)המשלהשתמש גם ניתן .משות
בישיר אופן/ישירות(Directly)ב( /רגילה התקנית מחלקהStandard Class):-CL_DOCUMENT_BCSל( המרהConversion)או( שיטות
Methods)ה אחרותזמינות(Available)ה לביצוע( המרהConversion).
( שיטהMethod) STRING_TO_SOLIX
פרמטר
(Parameter)
הסוג ציוני/הגדרות/ייחודיות
(Type Specification)
הפרמטר תאור
(Parameter Description)
IV_STRING TYPE STRING
IV_CODEPAGE TYPE ABAP_ENCOD OPTIONAL Identifier for Character Format (UTF-8, UCS-2, ...)
IV_ADD_BOM TYPE OS_BOOLEAN OPTIONAL Boolean
ET_SOLIX TYPE SOLIX_TAB GBT: SOLIX as Table Type
EV_SIZE TYPE SO_OBJ_LEN Size of Document Content
CT_BCS BCS: General Exceptions
קוד/הוראותהשיטה(Method Code):-
method XSTRING_TO_SOLIX.
*
DATA:lv_size TYPE i,
lv_off TYPE i,
ls_solix TYPE solix,
lv_rows TYPE I,
lv_last_row_len TYPE i,
lv_row_len TYPE i.
*
DESCRIBE TABLE et_solix.
lv_row_len = sy_tleng.
lv_size = XSTRLEN( iv_xstring ).
lv_rows = lv_size DIV lv_row_len.
lv_last_row_len = lv_size MOD lv_row_len.
DO lv_rows TIMES.
ls_solix-line = iv_xsring+lv_off(lv_row_len).
APPEND ls_solix TO et_solix.
ADD lv_row_len TO lv_off.
ENDDO.
IF lv_last_row_len > 0.
ls_solix-line = iv_xsring+lv_off(lv_last_row_len).
APPEND ls_solix TO et_solix.
ENDIF.
*
endmethod.
112.
( שיטהMethod) STRING_TO_XSTRING
פרמטר
(Parameter)
ציוני/הגדרות/הסוגייחודיות
(Type Specification)
הפרמטר תאור
(Parameter Description)
IV_STRING TYPE STRING
IV_CONVERT_CP TYPE OS_BOOLEAN
DEFAULT ‘X’
Boolean
IV_CODEPAGE TYPE ABAP_ENCOD
OPTIONAL
Identifier for Character Format (UTF-8, UCS-2, ...)
IV_ADD_BOM TYPE OS_BOOLEAN
OPTIONAL
Boolean
VALUE( EV_XSTRING ) TYPE XSTRING
CT_BCS BCS: General Exceptions
113.
קוד/הוראותהשיטה(Method Code):-
method STRING_TO_XSTRING.
DATAlo_conv TYPE REF TO cl_abap_conv_out_ce.
DATA lv_bom TYPE xstring.
DATA lv_xbuf TYPE xstring.
DATA lv_cp TYPE abap_encod.
TRY.
IF iv_convert_cp IS INITIAL.
EXPORT p = iv_string TO DATA BUFFER lv_xbuf.
IMPORT p = ev_xstring FROM DATA BUFFER lv_xbuf IN CHAR-TO-HEX MODE.
ELSE.
IF iv_codepage IS INITIAL. lv_cp = cl_sx_mime_singlepartget_sx_node_codepage( ).
ELSE. lv_cp = iv_codepage.
ENDIF.
* Convert string to xstring using class cl_abap_conv_out_ce in this form available
* also in 620
lo_conv = cl_abap_conv_out_cecreate( encoding = lv_cp ignore_cerr = 'X' ).
lo_convwrite( data = iv_string ).
ev_xstring = lo_convget_buffer( ).
* Add the byte order mark
IF iv_add_bom = 'X'.
CASE lv_cp.
WHEN '4110'. " UTF-8
lv_bom = CL_ABAP_CHAR_UTILITIESbyte_order_mark_utf8.
WHEN '4102'. " UTF-16BE
lv_bom = CL_ABAP_CHAR_UTILITIESbyte_order_mark_big.
WHEN '4103'. " UTF-16LE
lv_bom = CL_ABAP_CHAR_UTILITIESbyte_order_mark_little.
ENDCASE.
114.
IF lv_bom ISNOT INITIAL.
CONCATENATE lv_bom ev_xstring INTO ev_xstring IN BYTE MODE.
ENDIF.
ENDIF.
ENDIF.
*
CATCH cx_root.
RAISE EXCEPTION TYPE cx_bcs EXPORTING error_type = cx_bcscreation_failed.
*
ENDTRY.
endmethod.
קוד/הוראותדוגממקרה ת(Example Case Coding):-להתאים עניין שישנו במידההוספתמסמך[ מתווךAdd(Intermediary Document
)IDOC]מסמך כל אותקני/רגיל(Standard Document)כסיפוח(Attachment)ב להשתמש שניתן הרי( הדוגמה קוד/הוראותSample
Coding):הבא-
* if you want to add IDOC or any standard document as if you want to add IDOC or any
* standard document as Attachmen:- Populate object type and object key for create an
* instance
DATA: lv_objtype TYPE swo_objtyp,
lv_objkey TYPE swo_typeid,
lv_sofm TYPE swotrtime-object,
lv_return TYPE swotreturn.
lv_objtype = 'IDOCORDERS'.
lv_objkey = '0000000022238440'.
* Creating SOFM object
CALL FUNCTION 'SWO_CREATE'
EXPORTING
objtype = lv_objtype
objkey = lv_objkey
IMPORTING
object = lv_sofm
return = lv_return
EXCEPTIONS
no_remote_objects = 1 OTHERS = 2.
* Prepare for attaching the object to container
DATA: lv_object TYPE obj_record, tb_obj TYPE TABLE OF obj_record.
lv_object-header = 'OBJH'.
lv_object-type = 'BO'.
lv_object-handle = lv_sofm.
APPEND lv_object TO tb_obj.
CALL METHOD lv_containerset
EXPORTING
name = '_ATTACH_OBJECTS'
value = lv_object.
הוספתשלב סוגפעילות הליך/העבודה ""זרימת(Workflow Step Type Add):-Send Mail:-
*&---------------------------------------------------------------------*
*& Report ZSWET_BO1:- To get attributes of BO instance in report
*&---------------------------------------------------------------------*
REPORT zswet_bo1.
PARAMETERS: p_busobj(10) TYPE c DEFAULT 'BUS2012',
p_key(70) TYPE c DEFAULT '4200000017' ,
p_attr(32) TYPE c DEFAULT 'RELEASESTRATEGY',
p_access TYPE c DEFAULT 'G'. " To call method put 'C'
DATA: i_objtype TYPE swo_objtyp,
i_objkey TYPE swo_typeid,
i_element TYPE swo_verb.
DATA object TYPE swo_objhnd.
DATA verb TYPE swo_verb.
DATA return TYPE swotreturn.
DATA lt_container TYPE STANDARD TABLE OF SWCONT, line TYPE SWCONT.
i_objtype = p_busobj.
i_element = p_attr.
i_objkey = p_key.
* Instantiate the business object. i.e give it a key and create it.
CALL FUNCTION 'SWO_CREATE'
EXPORTING
objtype = i_objtype
173.
objkey = i_objkey
IMPORTING
object= object.
* Return attribute.
CALL FUNCTION 'SWO_INVOKE'
EXPORTING
access = p_access object = object verb = i_element
IMPORTING
return = return verb = verb
TABLES
container = lt_container.
* The attribute value is in the container returned from FM.
IF return-code = 0.
LOOP AT lt_container INTO line.
WRITE:/ 'Attribute RELEASESTRATEGY is : ', line-value.
ENDLOOP.
ENDIF.
תוכנית הפעלת( הדוחReport Program Execute)ו-ה בדיקת( פלטOutput Check):המתקבל-
קריאתשיטתעסקי אובייקט[Method Call(Business Object)BO:]-DISPLAY,להצגתניפוק הזמנת/דרישת[Display(Purchase
Order)PO;( הטרנזקציה/פעילותTransaction:)-ME23]המועברת(Passed)במסגרת"כלי/"מיכלהאובייקטהעסקי[Container
(Business Object)BO.]
*&---------------------------------------------------------------*
*& Report ZSWET_BO1 :- To call method with import parameters *
*&---------------------------------------------------------------*
REPORT zswet_bo1.
* Get an attribute of a business object.
174.
PARAMETERS: p_busobj(10) TYPEc DEFAULT 'BUS2012',
p_key(70) TYPE c DEFAULT '4200000017' ,
p_attr(32) TYPE c DEFAULT 'DISPLAY',
p_access TYPE c DEFAULT 'C'. " To call method put 'C'
DATA: i_objtype TYPE swo_objtyp,
i_objkey TYPE swo_typeid,
i_element TYPE swo_verb.
DATA object TYPE swo_objhnd.
DATA verb TYPE swo_verb.
DATA return TYPE swotreturn.
DATA lt_container TYPE STANDARD TABLE OF SWCONT.
i_objtype = p_busobj.
i_element = p_attr.
i_objkey = p_key.
* To call the method we need to populate the Container of the BO with importing
* parameters
CALL FUNCTION 'SWC_ELEMENT_SET'
EXPORTING
element = 'PurchaseOrder'
field = p_key(18) " Document Number of PO
TABLES
container = lt_container
EXCEPTIONS
OTHERS = 1.
*Instantiate the business object. I.e give it a key and create it.
CALL FUNCTION 'SWO_CREATE'
EXPORTING
objtype = i_objtype objkey = i_objkey
IMPORTING
להלןדוגמה(Example)המפיקהחילול/הפעלתפלט( התוכניתProgram OutputGenerated)ל ,זההקריאתשיטותעסקי אובייקט[
Methods Call(Business Object)BO]באמצעותהגדרותהמקרו(Macros Defined)במסגרתה( נכללInclude):-<CNTN01>:-
*&----------------------------------------------------------------*
*& Report ZSWET_BO1 :- Using macros defined in CNTN01 include. To call method of BO
*& For reference check FM DNO_DB_APPENDIX_INSERT
*&----------------------------------------------------------------*
REPORT zswet_bo1.
INCLUDE <cntn01>.
* Get an attribute of a business object.
PARAMETERS: p_busobj(10) TYPE c DEFAULT 'BUS2012',
p_key(70) TYPE c DEFAULT '4200000017' ,
p_attr(32) TYPE c DEFAULT 'DISPLAY',
p_access TYPE c DEFAULT 'C'. " To call method put 'C'
DATA: i_objtype TYPE swo_objtyp,
i_objkey TYPE swo_typeid,
i_element TYPE swo_verb.
DATA: gv_mat TYPE swc_object.
i_objtype = p_busobj.
i_element = p_attr.
i_objkey = p_key.
* Define container
swc_container container.
177.
שימושיות/פעילויות/א( פשרויותFunctionality) (מקרו הגדרתMacro)
ניתןלהתאיםיצירת""דוגמא/מקרה/ישותהאובייקטהעסקי[Instance Create(Business Object)BO
באמצעות ]( השימוש/הפעילות/האפשרות מאפיין/מודולFunction Module):-SWO_CREATEאו
באמצעותהגדרתה( מקרוMacro):-SWC_CREATE_OBJECTמשמשת ; .להרכבת/הבנית
מקום עיון/איזכור/מראה( האובייקטObject Reference Construct)מתוךסוגעסקי אובייקט[Type
(Business Object)BO]המשורשר האובייקט מפתח(Concatenated Object Key)ו-שיוך/ייחוס
מקום עיון/איזכור/מראה( האובייקטObject Reference Assign)ל( משתנהVariable)( מוכרז/מוגדר
Declared):באמצעות-SWC_OBJECT
SWC_CREATE_OBJECT
* Create instance of Object type
SWC_CREATE_OBJECT gv_mat i_objtype i_objkey.
( שימושיות/פעילויות/אפשרויותFunctionality) ( מקרו הגדרתMacro)
ניקוה י( "כלי/"מיכלContainer Clear) SWC_CLEAR_CONTAINER
* gv_mat will contain instance of the BO To clear a continer
SWC_CLEAR_CONTAINER container.
( שימושיות/פעילויות/אפשרויותFunctionality) ( מקרו הגדרתMacro)
קריאתרשומה/שורה משתנהבודדת/יחידה(Single-Line Variable Read)ה מתוך/כלי( ""מיכל
Container)
SWC_GET_ELEMENT
* Now to call a method fill up container with import parameters for method
* Document Number of PO ->import parameter
SWC_SET_ELEMENT container ' PurchaseOrder' p_key(18).
*--------------------------------------------------------------------------------------*
* For container of type table use swc_set_table. If any more import parameter are there
* for the object then populate them also using SWC_SET_ELEMENT and swc_set_table In this
* case no more import parameters To call a method stored in p_attr
*--------------------------------------------------------------------------------------*
swc_call_method gv_mat p_attr container.
*If there are any export parameter, then CONTAINER will have the values
*and we can read from container
חילול/הפעלתפלט( התוכניתProgram Output Generated):-הצגתה( טרנזקציה/פעילותTransaction Display):-ME23N[הצגת
ניפוק הזמנת/דרישת[Display(Purchase Order)PO]
178.
אירוע פעילות הזנקתעסאובייקט[ קיEvent Trigger(Business Object)BO]:-ב להשתמש ניתןמ/השימוש/הפעילות אפיין/מודול
( האפשרותFunction Module):-SWE_EVENT_CREATEלהגבהת/הצפתאירוע(Event Raise)כל במסגרתתוכנית( הדוחReport
Program).הוראת(Statement):-COMMIT WORKמפורשת/מובחנת(Explicit)( נידרש/תRequired)לאחרמאפיי קריאתן/מודול
( שימוש/פעילות/אפשרותFunction Module Call)ה פעילות להזנקת( אירועEvent Trigger)תתבצע לא אחרת ,הגבהת/הצפתאירוע
(Event Raised).
*&---------------------------------------------------------------*
*& Report ZSWET_BO1
*&---------------------------------------------------------------*
REPORT zswet_bo1.
INCLUDE <cntn01>.
* Get an attribute of a business object.
PARAMETERS: p_busobj(10) TYPE c DEFAULT 'BUS2012', " BO Type
p_key(70) TYPE c DEFAULT '4200000017'. " Document Number
*
DATA: i_objtype TYPE swo_objtyp,
i_objkey TYPE swo_typeid.
i_objtype = p_busobj.
i_objkey = p_key.
* Define container
swc_container container.
( שימושיות/פעילויות/אפשרויותFunctionality) מקרו הגדרת(Macro)
ה ניקוי( "כלי/"מיכלContainer Clear) SWC_CLEAR_CONTAINER
* To clear a continer
swc_clear_container container.
* You can populate the Container if required To generate event
CALL FUNCTION 'SWE_EVENT_CREATE'
EXPORTING
objtype = i_objtype objkey = i_objkey event = 'CREATED'
TABLES
event_container = container
EXCEPTIONS
objtype_not_found = 1 OTHERS = 2.
IF SY-SUBRC <> 0.
* MESSAGE ID SY-MSGID TYPE SY-MSGTY NUMBER SY-MSGNO WITH SY-MSGV1 SY-MSGV2 SY-MSGV3
SY-MSGV4 RAISING OBJTYPE_NOT_FOUND.
ENDIF.