You are on page 1of 72

WorkFlow

Kurulum Klavuzu

Dr. Kerem Kseolu


Tesuji Consulting
11/6/2009

WorkFlow Kurulum Klavuzu

Contents
WorkFlowa Genel Bak .......................................................................................................................... 4
WorkFlow Altyapsnn Kurulmas ........................................................................................................... 5
Olaylarn Etkinletirilmesi ........................................................................................................................ 8
WorkFlowun Hazrlanmas ................................................................................................................... 11
WorkFlowun Almas ....................................................................................................................... 11
WorkFlowu Balatmak ...................................................................................................................... 11
Batch Input Yntemi ...................................................................................................................... 11
Event Yntemi ............................................................................................................................... 13
WorkFlow Admlarnn Oluturulmas ............................................................................................... 16
Function Module / Class ................................................................................................................ 16
Business Object / Class .................................................................................................................. 16
Task ............................................................................................................................................... 18
WorkFlow Step .............................................................................................................................. 21
Taski General Task Haline Getirmek ............................................................................................. 21
Attachment ................................................................................................................................... 21
kinci Pencere Amak .................................................................................................................... 26
Agentlarn Atanmas ......................................................................................................................... 26
Superior Of Workflow Initiator ...................................................................................................... 26
Rule ............................................................................................................................................... 27
Role ............................................................................................................................................... 31
Job ................................................................................................................................................. 31
Organizational Unit ....................................................................................................................... 31
Position .......................................................................................................................................... 31
User ............................................................................................................................................... 31
Expression ..................................................................................................................................... 31
Binding lemlerinin Yaplmas ........................................................................................................... 32
lem Kodunun Balanmas ............................................................................................................... 34
WorkFlowlarn zlenmesi ...................................................................................................................... 35
WorkFlow letilerinin E-Posta Olarak Gnderilmesi .............................................................................. 36
Otomatik Bildirim .............................................................................................................................. 36
Kullanc Ayarlar ............................................................................................................................ 36
Dier Ayarlar .................................................................................................................................. 38
Manuel Bildirim ................................................................................................................................. 40

WorkFlow Kurulum Klavuzu

Netweaver zm ....................................................................................................................... 40
Java zm .................................................................................................................................. 42
E-Posta Dn ............................................................................................................................. 44
Vekalet Durumunda Vekilin Tespiti ................................................................................................... 46
WorkFlow letilerinin Silinmesi .............................................................................................................. 47
Faydal Workflow Nesneleri .................................................................................................................. 48
Tablolar ............................................................................................................................................. 48
Modllere zel pular ......................................................................................................................... 48
DMS ................................................................................................................................................... 48
Dkman Yaratld Anda WorkFlow Tetiklemek ......................................................................... 48
MM .................................................................................................................................................... 54
SAT & SAS in User Exit le Agent Belirleme ................................................................................. 54
Onay Durumunun Tespiti .............................................................................................................. 56
Programdan SAT Redddetmek ...................................................................................................... 62
Yetkilendirme ........................................................................................................................................ 64
Vekalet .................................................................................................................................................. 65
Hatalar ve zmler .............................................................................................................................. 70
Genel Hatalar .................................................................................................................................... 70
WorkFlow Tetiklenmiyor ............................................................................................................... 70
WorkFlowu Tekrar Balatmak ...................................................................................................... 71
Configure RFC Destination Problemleri ......................................................................................... 71
Annda Beliren Onay Ekran ........................................................................................................... 71
Bo OOCU Listesi ........................................................................................................................... 71
Hata letileri ....................................................................................................................................... 72
... grevinin ileme tayini yok ...................................................................................................... 72
Agents of type A cannot be defined .............................................................................................. 72
Object Type WF Is Not Valid ........................................................................................................ 72
SWF_RUN 594 ............................................................................................................................... 72
Dier Agent hatalar ...................................................................................................................... 72
Works Cited ........................................................................................................................................... 72

WorkFlow Kurulum Klavuzu

WorkFlowa Genel Bak

WorkFlow Kurulum Klavuzu

WorkFlow Altyapsnn Kurulmas


WorkFlow altyapsnn kurulmas ve alr hale getirilmesi iin, SWUD ilem koduna gidilir ve Verify
Automatic Customizing adm altrlr.


Uyarlamada u admlar takip edilmelidir:
Maintain Runtime Environment
Configure RFC Destination
WorkFlow ilerini yrtecek olan Background kullanc hesab belirlenir. Varsaylan deerler
korunabilir. Bu adm aktive edemiyorsanz, Configure RFC Destination Problemleri balna
gz atn.
Maintain Workflow System Administrator
Sistem yneticisi belirlenir. Buraya, teknik mesajlar inceleyip anlayabilecek olan sistem
yneticisi hesab girilmelidir.
Maintain Active Plan Version
T77S0 tablosundan tek bir satr girilecektir (PLOGI, PLOGI, 01)
Classify Decision Tas As General
Bu admda listelenecek btn grevler, General Task olarak iaretlenmelidir.
Schedule Background Job For Event Queue
Burada yaplabilecek rnek bir ayar, u ekilde olabilir:

WorkFlow Kurulum Klavuzu

WorkFlow Kurulum Klavuzu

WorkFlow Kurulum Klavuzu

Schedule Background Job For Clearing Report


Bu admn bir kez yrtlmesi yeterlidir.
Maintain Definition Environment
Maintain Prefix Number
Bu adm, farkl gelitirme snflarnda kullanlabilecek bir takm nek numaralarnn
ayarlanmas iin gereklidir. rnek bir konfigrasyon u ekilde olabilir:


Classify Tasks As General
Test Workflows
Bu adm altndaki Tasklerin tamamnn General Task olarak iaretlenmesi gerekir.
Customizing With Workflow
Bu adm altndaki Tasklerin tamamnn General Task olarak iaretlenmesi gerekir.

Olaylarn Etkinletirilmesi
Bu adm; DMS, SAT, SAS gibi standart bir WorkFlow srecindeki olaylarla tetiklenecek bir WorkFlow
hazrlayacaksak gereklidir. Bu uyarlama iin OOCU ilem koduna gidiyoruz.


Bu ekranda, SAPnin eitli modllerine ait arac tayini ve olay balantlarn yapmak mmkndr. Bu
iin nasl yaplacan anlamak iin, SAS onay ile ilgili olaylar aktive edelim.

WorkFlow Kurulum Klavuzu

OOCU ana mensnde MM Satnalma admna gidelim.


Olay Balantsnn Etkinletir
Bu admda, nce Olay balantsn etkinletir admn takip edeceiz. Karmza, eitli grevleri
barndran bir liste kacak. SAS onay iin, bu liste zerinde WS20000075 SAS Onay admna
gidip, menden Git Nesneyi Grntle balantsna tklayacaz.
Bu ekranda yaplmas gereken uyarlama, yle olacaktr:


Burada girilen nesne tipi, SAS sz konusu olduu iin BUS2012 olarak seilmitir. Eer SAT, DMS gibi
farkl bir nesne tipi sz konusu olsayd, farkl bir nesne tipi ve farkl bir olay atanacakt.
Bu ayardan sonra, bir nceki ekrana girip Ayrntlar dmesine tklyoruz.

10

WorkFlow Kurulum Klavuzu


Burada tklanmas gereken iki yer vardr:
Event linkage activated: Sz konusu olay aktif hale getirir
Error feedback: ak zerinde bir hata olutuunda, Eventi tamamen durdurmamay
salamak iin buraya 3 deerini giriyoruz.
imiz bittiinde,
dmesine tklayarak ekrandan kyoruz. Herey yolundaysa, grntnn u
hale gelmesi gerekir:


leyen Tayini
Bu blmde, kullanlacak olan WorkFlow admlarnn Genel grev olarak belirlenmesi sade bir
kurulum iin uygun olacaktr.

11

WorkFlow Kurulum Klavuzu

WorkFlowun Hazrlanmas
WorkFlowun Almas
WorkFlow emalar, SWDD ilem kodundan oluturulur. Eer standart sreler dahilinde bir
WorkFlow oluturuyorsak, sistemin getirdii rnek WorkFlowu kopyalayp Zli bir WorkFlow
oluturmak uygun olacaktr. Aksi takdirde; sfrdan Zli bir WorkFlow oluturacaksak, emay batan
oluturmak daha uygun olacaktr.

WorkFlowu Balatmak
Batch Input Yntemi
Bu adm; WorkFlowumuzu dkman yaratma, SAT gncelleme gibi standart bir olay neticesinde
tetikleyeceksek gereklidir.
Alternatif olarak, WorkFlowu balatmasn istediiniz olay (mesela bir belgenin kaydedilmesi)
srasnda tetiklenen bir User Exit bulup, o User Exit ierisinden aadaki gibi bir toplu girdi koduyla
WorkFlowu kendi kendinize tetikleyebilirsiniz:
FUNCTION zsdwf_trigger_workflow.
*"---------------------------------------------------------------------*"*"Local Interface:
*" IMPORTING
*"
REFERENCE(I_VBELN) TYPE VBELN_VA
*"---------------------------------------------------------------------DATA:
lt_bdcdata TYPE bdcdata OCCURS 0 WITH HEADER LINE,
lf_optio TYPE ctu_params.
DEFINE bdc_dynpro.
clear lt_bdcdata.
lt_bdcdata-program = &1.
lt_bdcdata-dynpro
= &2.
lt_bdcdata-dynbegin = 'X'.
append lt_bdcdata.
END-OF-DEFINITION.
DEFINE bdc_field.
clear lt_bdcdata.
lt_bdcdata-fnam = &1.
lt_bdcdata-fval = &2.
append lt_bdcdata.
END-OF-DEFINITION.
bdc_dynpro 'SAPLZSDWF_F' '0100'.
bdc_field:
'BDC_OKCODE'
'=SAVE',
'GF_100-VBELN' i_vbeln.
lf_optio-dismode = 'A'.
lf_optio-defsize = 'X'.
lf_optio-racommit = 'X'.
CALL TRANSACTION 'ZSDWF06'
USING lt_bdcdata
OPTIONS FROM lf_optio.
ENDFUNCTION.


Yukardaki rnekte ZSDWF06 ilem kodu, i aknn balamasn salayacak olan ilem kodudur.
ak balatacak ilem kodlarnn nasl oluturulaca, lem Kodunun Balanmas balnda

12

WorkFlow Kurulum Klavuzu

anlatlmtr. Bunun almas iin, i aknda bir Start Form yaratm olmanz gerekebilir parametre
pas etmeniz bu ekilde olacaktr. Aada, konuyla ilgili bir aklama bulabilirsiniz (Wilson, 2007):
To define a start form go to the workflow builder and choose menu option Goto Basic Data
Click the start forms tab
Click the new form icon to create a new form. Note that you need a structure defined as a
container element that has import as a property in order to use the wizard to create the form
for you. The wizard will bring all the fields from that structure onto the form. After it is
created you can go and edit the form using the normal screen painter.
Bunu yaptnzda, WorkFlow penceresinde dorudan kullanabileceiniz bir Transaction yaratlm
olacaktr. Ancak, bu Transactionu Batch Input ierisinde kullanmaya kalkmayn.


stteki durumda; i akn zel bir programdan veya kullancya herhangi bir parametre girdirme
ihtiyac olmadan (dolaysyla WorkFlow balang ekrann gstermeden) balatmak istiyorsanz,
aadaki kod size yardmc olabilir:
REPORT zsp_hrp_ebo_start_wf
NO STANDARD PAGE HEADING LINE-SIZE 255.

INCLUDE bdcrecxy.

DATA:
gf_opt TYPE ctu_params.

START-OF-SELECTION.

PERFORM bdc_dynpro USING 'SAPLSWY_WF_START' '0001'.
PERFORM bdc_field USING 'BDC_OKCODE'
'/00'.
PERFORM bdc_field USING 'GC_TASK'
'WS99900018'.

gf_opt-dismode = 'E'.
gf_opt-racommit = 'X'.
gf_opt-defsize = 'X'.

13

WorkFlow Kurulum Klavuzu

gf_opt-racommit = 'X'.
gf_opt-nobinpt = 'X'.
gf_opt-nobiend = 'X'.

CALL TRANSACTION 'WF_START' USING bdcdata OPTIONS FROM gf_opt.

END-OF-SELECTION.

Event Yntemi
Business Object
Business Object Eventi tetiklemek iin aadaki kodlardan faydalanabilirsiniz.
(...)
begin of lf_event,
objkey type sweinstcou-objkey,
evtid type swedumevid-evtid,
end of lf_event,
(...)
lf_event-objkey = lf_01-insid.

*
*
*
*
*
*
*
*
*
*
*

call function 'SWE_EVENT_CREATE'


exporting
objtype
= 'ZMMBO_PB00'
objkey
= lf_event-objkey
event
= 'CREATED'
CREATOR
= ' '
TAKE_WORKITEM_REQUESTER
= ' '
START_WITH_DELAY
= ' '
START_RECFB_SYNCHRON
= ' '
NO_COMMIT_FOR_QUEUE
= ' '
DEBUG_FLAG
= ' '
NO_LOGGING
= ' '
IDENT
=
importing
event_id
= lf_event-evtid
RECEIVER_COUNT
=
TABLES
EVENT_CONTAINER
=
exceptions
objtype_not_found
= 1
others
= 2.
if sy-subrc <> 0.
rollback work.
message id sy-msgid type sy-msgty number sy-msgno
with sy-msgv1 sy-msgv2 sy-msgv3 sy-msgv4
raising event_error.
endif.
if lf_event-evtid is initial.
rollback work.
message e010(zmmwf) raising wf_not_triggered.
endif.

Bu fonksiyonda ZMMBO_PB00, ilgili Business Objectin addr


Class
Class Eventi tetiklemek iin aadaki rnei inceleyebilirsiniz.
Tetiklenebilecek rnek bir Event (SE24):

14

WorkFlow Kurulum Klavuzu


Event tetiklemek iin kullanlabilecek parametrik bir rnek kod:
method event_create.
*PFD_I_EVENT TYPE SWO_EVENT Event ismi
*PFD_I_CLSNAME TYPE SEOCLSNAME
*PIT_I_PARAMETRE

Snf Ad

TYPE ZBCTT_PARAMETRE Parametreler - Tablo

*PFD_I_COMMIT TYPE FLAG DEFAULT 'X'

Commit work

*CX_SWF_EVT_INVALID_OBJTYPE

Error in Class / Object Type

*CX_SWF_EVT_INVALID_EVENT

Error in Event

data: l_event_parameters type ref to if_swf_ifs_parameter_container,


l_cls_instance type sibfinstid,
lwa_parametre type zbcs_parametre.


* lgili eventlar ile bo bir konteyner yarat
call method cl_swf_evt_event=>get_event_container
exporting
im_objcateg = cl_swf_evt_event=>mc_objcateg_cl
im_objtype = pfd_i_clsname
im_event = pfd_i_event
receiving
re_reference = l_event_parameters.

* Deikenleri set et
loop at pit_i_parametre into lwa_parametre.

15

WorkFlow Kurulum Klavuzu

call method l_event_parameters->set


exporting
name = lwa_parametre-name "Parametre Ad
value = lwa_parametre-value. " Deeri
endloop.

* l_cls_instance = p_qmnum.

* Eventi tetikle
call method cl_swf_evt_event=>raise
exporting
im_objcateg = cl_swf_evt_event=>mc_objcateg_cl
im_objtype = pfd_i_clsname
im_event = pfd_i_event
im_objkey = l_cls_instance
im_event_container = l_event_parameters.

if pfd_i_commit ne space.
commit work.
endif.

endmethod.

Bu Methodu ararak Event tetikleyen rnek kod:


REFRESH lit_parametre.
lwa_parametre-name = 'PFD_I_POSID'.
lwa_parametre-value = pfd_i_posid.
APPEND lwa_parametre TO lit_parametre.

lwa_parametre-name = 'PFD_I_POSNR'.
lwa_parametre-value = pfd_i_posnr.
APPEND lwa_parametre TO lit_parametre.

zbccl_wf=>event_create( pfd_i_event = 'YARATILDI'

16

WorkFlow Kurulum Klavuzu

pfd_i_clsname = 'ZIMCL_YATIRIM_TALEBI'
pit_i_parametre = lit_parametre
pfd_i_commit = space ).

Bu Eventi dinleyen rnek WorkFlow:



Manuel
ak ilikili bir Eventi manuel tetiklemek iin, SWUE ilem kodunu kullanabilirsiniz.

WorkFlow Admlarnn Oluturulmas


Function Module / Class
WorkFlowda alacak her bir kod iin, nce bir fonksiyon / Method yazmamz gerekmektedir. Eer
ekran zerinden veri girii yaplacaksa; sz konusu fonksiyonun ait olduu grupta bir ekran yaratp,
sz konusu ekran fonksiyon ierisinde Call Screen komutuyla ararak aktive edebiliriz.
Eer standart bir sre ile alacak bir WorkFlow sz konusuysa, normalde ekstra fonksiyon yazma
iimizin olmamas gerekir.
Object Oriented alacaksanz, yazacanz Methodlar Static olmaldr.
Business Object / Class
Bu zmler birbirinin alternatifidir. Daha modern dnyada Class, daha eski dnyada Business Object
kullanlr.
Class
WorkFlowun arkasna Class yazmaya karar verirseniz (nerilen yntem), SE24te yeni bir snf yaratp
u Interfaceleri uyguladnzdan emin olun:
BI_OBJECT
BI_PERSISTENT

17

WorkFlow Kurulum Klavuzu

IF_WORKFLOW
IF_SWF_EVT_EVENT
Business Object
Business Object, bir WorkFlow arkasnda alacak olan kodlarn Method ve Propertyler baznda
toparland yerdir. SWO1 ekranndan eriilebilirler.
Mesela; SAT onaylar iin BUS2012 adl Business Object, dkman ynetimi iin DRAW adl Business
Object vardr. Eer standart bir sre ile alacak bir WorkFlow sz konusuysa, sistemdeki mevcut
Business Objecti kullanacaz. Aksi takdirde; kendi Zli yapmza uygun bir Business Objecti sfrdan
yaratmamz gerekecek.
Business Object ierisindeki Methodlarn her biri, bir fonksiyon referans alnarak yaratlr. Key Fields
ve Attributes ise, WorkFlowa konu olan tablolarn alanlar referans alnacak yaratlr.
Bir Business Objecti yaratp hazr hale getirdikten sonra, Edit Change Release Status Object
Type To Implemented (veya Released) dememiz gerekir.
Aada rnek bir Method kodu grebilirsiniz:


Method ierisinde SWC_GET_ELEMENT makrosu ile Containerden deiken alabilir,
SWC_SET_ELEMENT makrosu ile Containere deiken aktarabiliriz. Bu ekilde modifiye edeceimiz
deerler, methodu barndran Taskin Container blmnde tanmlanm olmaldr.

18

WorkFlow Kurulum Klavuzu

Task
Bir Class / Business Object methodu ile WorkFlow adm arasndaki kpry Taskler kurar. Yani; bir
Methodu WorkFlowda dorudan doruya kullanamayz. Doru balant; Method Task
WorkFlow Step eklinde kurulmaldr.
Taskler; aadaki men admlarndan dzenlenebilir (ilem kodu: PFTC_INS):


Yeni bir Task yaratacak olursak, tipi TS Standart Grev olacaktr.
Task ierisindeki kritik alanlar grelim.
Temel Veriler
Bu blmde; Object Oriented altysanz CL nesne kategorisini, Business Object bazl altysanz
BO nesne kategorisini sein. Nesne Tipi olarak ilgili Business Objectin / snfn ad, Method
olarak ise ilgili Methodun ismi girilecektir.

19

WorkFlow Kurulum Klavuzu


Eer yarattnz Task bir kullancnn WorkFlow ekranna dmeden sistem tarafndan ilensin
istiyorsanz, aadaki kutucuu da doldurun. Bunun yan sra, WorkFlow ierisinde Taski General
olmaktan karp hibir Agent atamayn.


Tanm
Bu blmde, i aknn eitli metinleri tanmlanabilir. Bu metinler SAP ii mesajlarda veya E-Posta
iletilerinde kullanlacaktr.

20

WorkFlow Kurulum Klavuzu


Buradaki metinlerin tercmesi iin SE63 Dier Uzun Metinler mensn kullanabilirsiniz. rnein,
8267 numaral Taskin tercmesi iin kullanmanz gereken kodlar:
PDTS00008267 0120
PDTS00008267 0121
PDTS00008267 ...
Sondaki 4 haneli rakam, Task ekranndaki metin koduna tekabl etmektedir:


Yaptnz tercmeleri tamak iin ise Transport Requestiniz altnda yle bir kayt olmaldr:

21

WorkFlow Kurulum Klavuzu



Konteyner
Bu blmde, Taskden (yani WorkFlowdan) Methoda (yani fonksiyona) gnderilecek olan Container
deerleri tanmlanr. Fonksiyondan Containere dnecek olan deikenler de burada tanmlanr.


WorkFlow Step
Taski General Task Haline Getirmek
Bir Taski WorkFlowa mdahele etmeden General Task haline getirmek isterseniz, u admlar izleyin:



PFTC_CHG ilem koduna girin


Ek Veriler Arac Tayini Bakmn Yap mensne gidin
zelliklere girip Genel Grevi tklayn
OK & Generate

Attachment
Zorunlu olmasa da; WorkFlowa Attachment balamak gerekebilir. Bunun tipik bir rnei; beyaz
ekranl Decision Task ekranna, ilgili SAP belgesine gidecek .SAP uzantl bir Attachment eklemektir.
Bunun iin, i akna yeni bir Task ekliyoruz.

22

WorkFlow Kurulum Klavuzu


Taskin detaylar yle olmal:

23

WorkFlow Kurulum Klavuzu

24

WorkFlow Kurulum Klavuzu


Taskin arkasndaki Business Object ile, SWO1de SOFMdan kopyalanmtr. Eklenen ATTACHDOC
Methodu ise yledir:
begin_method attachdoc changing container.
data: v_xstring type xstring,
v_workitemid type swr_struct-workitemid,
v_att_header type swr_att_header,
v_att_id type swr_att_id,
v_submi type ekko-submi,
v_syuname type syuname.

* get the input values
swc_get_element container 'WorkitemId' v_workitemid.
swc_get_element container 'submi' v_submi.

call function 'ZMMF_TEKLIF_LINK'
exporting
pfd_i_submi = v_submi
importing
pfd_e_xstring = v_xstring.

* document file attributes
* get the extension name

v_att_header-file_type = 'B'.
v_att_header-file_name = v_submi.
concatenate 'TeklifGrpNo_' v_submi '.SAP' into v_att_header-file_name.
v_att_header-file_extension = 'SAP'.
v_att_header-language = sy-langu.

call function 'SAP_WAPI_ATTACHMENT_ADD'
exporting
workitem_id = v_workitemid
att_header = v_att_header
att_bin = v_xstring
importing
att_id = v_att_id.

25

WorkFlow Kurulum Klavuzu


data: lo_attachment type swc_object.
swc_create_object lo_attachment 'SOFM' v_att_id-doc_id.
if sy-subrc = 0.
swc_set_element container 'SOFM' lo_attachment.
else.
"raise error
endif.

* pass attachment id and internal document number for SOFM
* SWC_SET_ELEMENT CONTAINER 'ATT_ID' V_ATT_ID.
* SWC_SET_ELEMENT CONTAINER 'SOFM' V_ATT_ID-DOC_ID.

end_method.


Buradaki ZMMF_TEKLIF_LINK fonksiyonunun ierii:
function zmmf_teklif_link .
*"----------------------------------------------------------------------
*"*"Local Interface:
*" IMPORTING
*" REFERENCE(PFD_I_SUBMI) TYPE EKKO-SUBMI
*" EXPORTING
*" REFERENCE(PFD_E_XSTRING) TYPE XSTRING
*"----------------------------------------------------------------------

*** Declaration for shortcut content
data : lfd_parameter type text255,
lfd_string type string,
lfd_ekorg type ekko-ekorg.

select single ekorg
from zmmt_tklf_log_b
into lfd_ekorg
where submi eq pfd_i_submi.

clear pfd_e_xstring.
lfd_parameter = 'p_action=EXECUTE;'.
concatenate lfd_parameter 'P_SUBMI-LOW=' pfd_i_submi ';P_EKORG=' lfd_ekorg ';'
into lfd_parameter.
concatenate lfd_parameter 'DYNP_OKCODE=/00' into lfd_parameter .

*** create the shortcut content for the required transaction
call function 'SWN_CREATE_SHORTCUT'
exporting
i_transaction = '*ZMM001'
i_parameter = lfd_parameter
i_sysid = sy-sysid
i_client = sy-mandt
i_user = space
i_language = sy-langu
i_windowsize = 'Normal window' "Maximized
importing
shortcut_string = lfd_string
exceptions
inconsistent_parameters = 1
others = 2.
if sy-subrc eq 0.
call function 'SCMS_STRING_TO_XSTRING'
exporting
text = lfd_string
importing
buffer = pfd_e_xstring.
endif.

26

WorkFlow Kurulum Klavuzu



endfunction.


kinci Pencere Amak
User Decision iinde ikinci bir pencere ap belgeyi grntlemek istersek;
Opsiyonel adm 1: BORun dinamik yaratlmas. BOR zaten varsa buna gerek yok:


Adm 2: Taskin iinde Grntle Methodunun arlmas:

Agentlarn Atanmas
Agent atama blmnde seilebilecek birka deer vardr, bunlar aada bulabilirsiniz. Zli program
/ raporlarda, atanan bir Agentn adn almak iin SWD_AGENT_TEXT_GET fonksiyonu kullanlabilri.
Superior Of Workflow Initiator
Bu deer, WorkFlowu balatan kiinin yneticisini temsil etmektedir.

27

WorkFlow Kurulum Klavuzu

Rule
Dikkat! 4.x sistemlerinde ROLE olarak geen kavram, 5.x itibariyle RULE olarak deitirilmi ve
ROLE diye yepyeni bir kavram getirilmitir.
Rulelar sayesinde, WorkFlowun herhangi bir admndaki Agent dinamik olarak (ABAP kodu ile)
belirlenebilir. Bu ilem iin izlenmesi gereken birka adm vardr. Bu admlar bir rnek erevesinde
inceleyelim.
Fonksiyonun Yazlmas
Sz konusu fonksiyon, EDI_ROLE_FOR_PROC_CHECKDUMMY kopyalanarak yazlabilir1. Bu
fonksiyonun amac, WorkFlowdaki duruma gre muhataplar belirleyip geri dndrmek olacak.
Fonksiyon grubu ierisinde, Containerden deer almak & Containere deer atamak iin u tanm
yaplmaldr:
include <cntain>.

Fonksiyon ierisinde izlenmesi gereken 3 adm vardr:


1. Containerden gerekli bilgileri almak
2. Zli tablolardan (veya baka bir ekilde) ilgili muhatab/muhataplar tespit etmek
3. Sz konusu muhataplar ACTOR_TAB ierisinde doldurmak
Yazlm rnek bir muhatap fonksiyonu kodunu inceleyelim:
function zfakorul1.
*"---------------------------------------------------------------------*"*"Local Interface:
*" TABLES
*"
ACTOR_TAB STRUCTURE SWHACTOR
*"
AC_CONTAINER STRUCTURE SWCONT
*" EXCEPTIONS
*"
NOBODY_FOUND
*"
NO_ACTIVE_PLVAR
*"---------------------------------------------------------------------* define variables stored in container
* local data
data:
lf_doc2 type zfakdoc2,
lv_docid like zfakdoc2-docid,
lv_posnr like zfakdoc2-posnr.
swc_get_element ac_container 'DOCID' lv_docid.
swc_get_element ac_container 'POSNR' lv_posnr.
select single * into lf_doc2 from zfakdoc2
where docid eq lv_docid
and posnr eq lv_posnr.
if not lf_doc2-user1 is initial.
actor_tab-otype = 'US'.
actor_tab-objid = lf_doc2-user1.
append actor_tab.
endif.
if not lf_doc2-user2 is initial.
actor_tab-otype = 'US'.

Sistemde temel alnabilecek birok fonksiyon vardr. nemli olan, fonksiyonun ACTOR_TAB ve AC_CONTAINER
parametrelerine sahip olmasdr.

28

WorkFlow Kurulum Klavuzu

actor_tab-objid = lf_doc2-user2.
append actor_tab.
endif.
if not lf_doc2-user3 is initial.
actor_tab-otype = 'US'.
actor_tab-objid = lf_doc2-user3.
append actor_tab.
endif.
endfunction.


Buradaki en basit yaklam, ACTOR_TABe US anahtaryla bir kullanc eklemektir.
Ruleun Yaratlmas
Fonksiyon yazldktan sonra, sra Rule tanmlamasna gelir. Bunun iin PFAC_INS ilem koduna veya
ilgili menye gidip yeni bir Rule yaratyoruz.


Rule Definition blmnde;
Category ksmnda Function to be Executed deerini seiyoruz
Function Module ksmnda, daha nce yaratm olduumuz fonksiyonun ismini giriyoruz

29

WorkFlow Kurulum Klavuzu


Burada Terminate if Rule Resolution Without Result tknn atldndan emin olun. Aksi takdirde;
koddaki bir hatadan dolay Agent belirlenemezse ve Task Generic ise, ilgili onay talebi sistemdeki tm
kullanclara gidecektir.
Container blmnde ise, yazdmz fonksiyon ierisinde SWC_GET_ELEMENT ile deerini aldmz
deikenleri (IMPORTING eklinde) tanmlyoruz. Eer SWC_SET_ELEMENT ile fonksiyondan
Containere dndreceimiz deerler varsa, onlar da (EXPORTING eklinde) tanmlayabiliriz.


WorkFlowa Uygulanmas
Dinamik muhatap atamas yapacamz admn Agents blmnde, AC Rule deerini seip karsna
yarattmz Ruleun kodunu giriyoruz.

30

WorkFlow Kurulum Klavuzu


Ardndan; Binding dmesine tklayp, Container ve Rule arasnda gidip gelecek olan deikenleri
tanmlamamz gerekiyor. Yukardaki rnekte, DOCID ve POSNR deerlerini aktarmamz gerekiyor. 2


Agent atamas dinamik yaplacandan, sz konusu Taskin Generic Task olarak tanmlanmasnda
fayda vardr. Bu ilem iin, nce Task Properties blmndeki Agent Assignmenta tklyoruz.

Eer fonksiyondan Containere deer dn olsayd, onu da ayn pencerenin alt tarafnda tanmlayacaktk

31

WorkFlow Kurulum Klavuzu


Gittiimiz ekranda Taski seip Attributes... dmesine tklyor ve General Task seeneini
tklyoruz.


Role
Bu deer, standart BC yetkilendirmesindeki role karlk gelmektedir.
Job
Bu deer, HR emasndaki bir Jobu temsil eder.
Organizational Unit
Bu deer, HR emasndaki bir organizasyon birimini temsil eder.
Position
Bu deer, HR emasndaki bir pozisyonu temsil eder.
User
Bu deer, sistemdeki bir kullancy temsil eder.
Expression
Buraya, Containerde bulunan SWHACTOR tipindeki bir muhatap deikeni girilebilir.

32

WorkFlow Kurulum Klavuzu

Binding lemlerinin Yaplmas


WorkFlowun her bir admnda, ilgili Taske gnderilecek ve Taskden alnacak deerler
tanmlanmaldr. Bu i, adm detaylarndaki Binding dmesi ile yaplr.
Aada rnek bir Binding grebilirsiniz:


Binding sonucunda, deikenlerin ak sras u ekilde olur:

33

WorkFlow Kurulum Klavuzu

WorkFlow
Container

Task

Task

Method

Method

Function

34

WorkFlow Kurulum Klavuzu

lem Kodunun Balanmas


WorkFlowu bir ilem kodu ile balatmak istiyorsanz, SE93 ekrannda aadaki zelliklere sahip bir
Parameter Transaction yaratn:


Buradaki GC_TASK deeri, yaratm olduunuz WorkFlowun IDsi olmaldr.

35

WorkFlow Kurulum Klavuzu

WorkFlowlarn zlenmesi
WorkFlow hatalar ortaya kyorsa, yaplacak ilk i SWU_OBUF ilem kodunda bir senkronizasyon
yaplmasdr. Bunun tesinde, balam WorkFlowlarn izlenmesi iin SWI6 / SWI14 ilem kodlar
kullanlabilir. Aada, rnek bir rapor grebilirsiniz:


Burada seilmi herhangi bir admn detaylarn grmek iin, yukardaki Log dmesine tklanabilir.


Ayn ekran zerinde, Graphic dmesi ile ak grsel olarak da izlemek mmkndr.

36

WorkFlow Kurulum Klavuzu

WorkFlow letilerinin E-Posta Olarak Gnderilmesi


Otomatik Bildirim
Bu ilem, NetWeaver ve Web Application Server bulunan yerlerde otomatik olarak yaplabilmektedir.
Kullanc Ayarlar
Eski Sistemler
ncelikle, E-Posta iletisi almak isteyen kullanc ile Login olup SO12 ekranna gidiyoruz.


Bu ekranda, Otomatik letim sekmesinde Create dmesine tklyoruz.

37

WorkFlow Kurulum Klavuzu


Alacak olan pencerede, E-Posta iletilerinin gnderilecei adresi ve gnderim ileminin yaplaca
tarih araln giriyoruz. Gerek bir WorkFlow senaryosunda, biti tarihi olarak 31.12.9999 girmek
uygun olacaktr. 3
Yeni Sistemler
Yeni sistemlerde, stteki Forward zelliini kullanmaya gerek yoktur. Kullanc ana verilerindeki
(SU01) E-Posta adresi otomatik olarak kullanlr.

Yapm olduumuz bu ayar, SO36 ekrannda birok kullanc iin toplu olarak yaplabilir.

38

WorkFlow Kurulum Klavuzu

Dier Ayarlar
Bu andan itibaren, kiinin Inboxuna decek olan SAP ve WorkFlow iletileri, otomatik olarak bu
adrese iletilecektir. letim iini yapacak programlarn dzenli Background Joblar eklinde kurulmu
olmas gerekmektedir:

RSWUWFML2
ak iletilerini gnderir. deal durumda bu program bir varyant ile kurulmaldr. Varyant
ierisinde, aadaki seim ekran kriterleri ayarlanmaldr:


Bu ekran zerinde;
Message Class for Subject & Message Number For Subject: Gnderilen E-Posta iletisinin
konusunu hangi ileti snfnn (SE91) hangi iletisinden oluturacan belirtiyoruz. SE91
mesaj iinde iki parametre belirtebiliyoruz:
o &1 = Sistem tanm (ARP gibi)
o &2 = Taskin iindeki metin
Before Work Item Description: Gnderilecek iletinin ieriine ait standart metni
belirliyoruz. Bu standart metin, SE61 ilem kodunda tanmlanabilir. SE61de; dkman
snf DT(Diyalogdaki metin) olarak ayarlanmaldr.
Farkl i aklar iin farkl metinler sz konusu olacaksa; her bir i ak iin ayr ayr varyantlar
oluturup; her bir varyant iin ayr birer Job kurmak iyi bir fikir olacaktr.

39

WorkFlow Kurulum Klavuzu

Eer gnderilen iletilerin ieriini i ak nesnesinden (onay talebi, vs) dinamik olarak deitirmek
istersek, bu ilemi bu programn Zli bir kopyasn alarak yapabiliriz. Deitirilmi rnek bir
program, ekte bulunmaktadr:

ZRSWUWFML2


Yeni srmlerde ayn ii Enhancementlarla da yapabiliyoruz. Enhancementl bir rnek ektedir:

RSWUWFML2

SWN_SELSEN
Gecikmi / cevaplanmam iletileri tekrar gnderir. Bu program normal artlarda kurmaya gerek
yoktur.
Bu programlarn dzgn almas iin, SCOT ilem kodundaki E-Posta ayarlarnn dzgn bir ekilde
yaplm olmas gerekmektedir.
Gnderilmi olan i ak iletileri, kabaca aadaki grntye sahip olacaktr:


Kullanc iaretli balantlara tklayarak, ekrannda alacak bir SAP Gui penceresi ierisinde gerekli
ilemi yapabilir.
Bu balantlara tklandnda; kullancnn hangi SAP sistemine Logon olaca una baldr: Gnderilen
link (EXECUTE WORK ITEM.SAP) ierisinde, kaynak sistemin 3 haneli kodu bulunmaktadr:

40

WorkFlow Kurulum Klavuzu


Kullancnn SAPGUIsinde (rneimizde) OXP girdisi hangi sistemde ise, balantya tkladnda o
sisteme Login olmaya alacaktr.


Birden fazla sistemde OXP tanm varsa, daha stte yer alan sisteme Login olunacaktr.

Manuel Bildirim
Netweaver bulunmayan, veya E-Postadaki balantya tklayarak bir Web balants amak isteyen
yerlerde ise, WorkFlow Inboxunu periyodik olarak tarayp, yeni mesajlar iin E-Posta iletileri
oluturup Zli bir tabloya yazacak bir uygulama gelitirilmesi gerekir.
Netweaver zm
Netweaver var ise, ilgili E-Posta atma fonksiyonu arlarak iletiler gnderilebilir. Aada bu ii yapan
rnek bir program grebilirsiniz.
REPORT zwfmail .
DATA:
BEGIN OF gt_uname OCCURS 0,
uname LIKE sy-uname,
line TYPE so_text255,
wi_id TYPE sww_wiid,
END OF gt_uname.
START-OF-SELECTION.
PERFORM detect_msg.
PERFORM sendmail.

41

WorkFlow Kurulum Klavuzu

END-OF-SELECTION.
*&---------------------------------------------------------------------*
*&
Form sendmail
*&---------------------------------------------------------------------*
FORM sendmail.
DATA:
lt_cont TYPE STANDARD TABLE OF solisti1 WITH HEADER LINE,
lt_rece TYPE STANDARD TABLE OF somlreci1 WITH HEADER LINE,
lf_docdat TYPE sodocchgi1,
lf_sent TYPE zwf_sent.
lf_docdat-obj_name = 'SAPOFFICE'.
lf_docdat-obj_descr = 'Onay Talebi'.
LOOP AT gt_uname.
REFRESH:
lt_cont,
lt_rece.
lt_cont-line = gt_uname-line.
APPEND lt_cont.
SELECT SINGLE smtp_addr INTO lt_rece-receiver
FROM adr6
WHERE addrnumber EQ ( SELECT addrnumber FROM usr21
WHERE bname EQ gt_uname-uname )
AND persnumber EQ
( SELECT persnumber FROM usr21
WHERE bname EQ gt_uname-uname ).
lt_rece-rec_type = 'U'.
APPEND lt_rece.
CALL FUNCTION 'SO_NEW_DOCUMENT_SEND_API1'
EXPORTING
document_data
= lf_docdat
commit_work
= 'X'
TABLES
object_content
= lt_cont
receivers
= lt_rece
EXCEPTIONS
too_many_receivers
= 1
document_not_sent
= 2
document_type_not_exist
= 3
operation_no_authorization = 4
parameter_error
= 5
x_error
= 6
enqueue_error
= 7
OTHERS
= 8.
IF sy-subrc EQ 0.
lf_sent-wi_id = gt_uname-wi_id.
INSERT zwf_sent FROM lf_sent.
ENDIF.
ENDLOOP.
SUBMIT rsconn01 AND RETURN.
ENDFORM.
" sendmail
*&---------------------------------------------------------------------*
*&
Form detect_msg
*&---------------------------------------------------------------------*
*
text
*----------------------------------------------------------------------*
* --> p1
text

42

WorkFlow Kurulum Klavuzu

* <-- p2
text
*----------------------------------------------------------------------*
FORM detect_msg.
DATA:
lt_agents TYPE swhactor OCCURS 0 WITH HEADER LINE.
SELECT DISTINCT
wi_text AS line
wi_id AS wi_id
FROM sww_outbox
APPENDING CORRESPONDING FIELDS OF TABLE gt_uname
WHERE wi_rh_task EQ 'TS00007986'
AND wi_stat EQ 'READY'
AND NOT wi_id IN ( SELECT wi_id FROM zwf_sent ).
LOOP AT gt_uname.
REFRESH lt_agents.

*
*
*
*
*

CALL FUNCTION 'SWW_WI_AGENTS_READ'


EXPORTING
wi_id
= gt_uname-wi_id
TABLES
DEADLINE_AGENTS
=
DESIRED_END_AGENTS
=
LATEST_START_AGENTS
=
EXCLUDED_AGENTS
=
NOTIFICATION_AGENTS
=
agents
= lt_agents.
READ TABLE lt_agents INDEX 1.
IF sy-subrc EQ 0 AND lt_agents-otype EQ 'US'.
gt_uname-uname = lt_agents-objid.
MODIFY gt_uname.
ENDIF.
ENDLOOP.

ENDFORM.

" detect_msg


Java zm
Netweaver yok ise, darda yazlacak bir Java program belli zaman aralklarnda bu tabloyu okuyarak
birikmi mesajlar E-Posta olarak gnderecektir. E-Posta iletilerinde, Java ile yazlacak bir Web
sayfasna verilmi balant olacaktr. Aada bu ii (Javaya ynelik olarak) yapan rnek bir program
grebilirsiniz.
REPORT zwfmail .
DATA:
BEGIN OF gt_uname OCCURS 0,
uname LIKE sy-uname,
line TYPE so_text255,
wi_id TYPE sww_wiid,
END OF gt_uname.
START-OF-SELECTION.
PERFORM detect_msg.
PERFORM sendmail.
END-OF-SELECTION.

43

WorkFlow Kurulum Klavuzu

*&---------------------------------------------------------------------*
*&
Form sendmail
*&---------------------------------------------------------------------*
FORM sendmail.
DATA:
mailname LIKE sood1-objnam,
mailtitlel LIKE sood1-objdes,
soli TYPE soli OCCURS 0 WITH HEADER LINE.
DATA:
lf_sent TYPE zwf_sent.
DATA:
lf_mail TYPE zwfmail.
LOOP AT gt_uname.
*
*
*
*
*
**
*
*
*
*
*
*
*
*

soli-line = gt_uname-line.
APPEND soli.
CALL FUNCTION 'RS_SEND_MAIL_FOR_SPOOLLIST'
EXPORTING
SPOOLNUMBER
= SY-SPONO
mailname
= mailname
mailtitel
= mailtitlel
user
= gt_uname-uname
TABLES
text
= soli
EXCEPTIONS
error
= 1
OTHERS
= 2.
SELECT SINGLE smtp_addr INTO lf_mail-email
FROM adr6
WHERE addrnumber EQ ( SELECT addrnumber FROM usr21
WHERE bname EQ gt_uname-uname )
AND persnumber EQ
( SELECT persnumber FROM usr21
WHERE bname EQ gt_uname-uname ).
INSERT zwfmail FROM lf_mail.
IF sy-subrc EQ 0.
lf_sent-wi_id = gt_uname-wi_id.
INSERT zwf_sent FROM lf_sent.
ENDIF.
ENDLOOP.

ENDFORM.
" sendmail
*&---------------------------------------------------------------------*
*&
Form detect_msg
*&---------------------------------------------------------------------*
*
text
*----------------------------------------------------------------------*
* --> p1
text
* <-- p2
text
*----------------------------------------------------------------------*
FORM detect_msg.
DATA:
lt_agents TYPE swhactor OCCURS 0 WITH HEADER LINE.
SELECT DISTINCT
wi_text AS line
wi_id AS wi_id
FROM sww_outbox
APPENDING CORRESPONDING FIELDS OF TABLE gt_uname

44

WorkFlow Kurulum Klavuzu

WHERE wi_rh_task EQ 'TS00007986'


AND wi_stat EQ 'READY'
AND NOT wi_id IN ( select WI_ID from ZWF_SENT ).
LOOP AT gt_uname.
REFRESH lt_agents.

*
*
*
*
*

CALL FUNCTION 'SWW_WI_AGENTS_READ'


EXPORTING
wi_id
= gt_uname-wi_id
TABLES
DEADLINE_AGENTS
=
DESIRED_END_AGENTS
=
LATEST_START_AGENTS
=
EXCLUDED_AGENTS
=
NOTIFICATION_AGENTS
=
agents
= lt_agents.
READ TABLE lt_agents INDEX 1.
IF sy-subrc EQ 0 AND lt_agents-otype EQ 'US'.
gt_uname-uname = lt_agents-objid.
MODIFY gt_uname.
ENDIF.
ENDLOOP.

ENDFORM.

" detect_msg


E-Posta Dn
E-Posta dnnde Web tabanl bir onay vermek sz konusu ise, bu onayn arkasndaki fonksiyon
SWW_WI_ADMIN_EXECUTE fonksiyonunu aracak bir rapor yazlp, bu raporu aran bir Batch
Input yrtebilir (SWIA ilem kodunun arkasndaki fonksiyon). Identification parametresi olarak,
sz konusu Work Itemin IDsi girilecektir.4
REPORT zpurap_wi_admin_execute .
PARAMETERS:
p_wi_id TYPE swwwihead-wi_id.
START-OF-SELECTION.

*
*
*
*
*
*
*
*
*
*
*
*
*
*
*

CALL FUNCTION 'SWW_WI_ADMIN_EXECUTE'


EXPORTING
wi_id
= p_wi_id
DO_COMMIT
= 'X'
AUTHORIZATION_CHECKED
= ' '
PRECONDITIONS_CHECKED
= ' '
EXECUTED_BY_USER
= SY-UNAME
EXECUTED_BY_ADDRESS
= ' '
IMPORTING
NEW_STATUS
=
EXCEPTIONS
UPDATE_FAILED
= 1
NO_AUTHORIZATION
= 2
INFEASIBLE_STATE_TRANSITION
= 3
INVALID_TYPE
= 4
OTHERS
= 5
.
IF sy-subrc <> 0.
MESSAGE ID SY-MSGID TYPE SY-MSGTY NUMBER SY-MSGNO
WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4.
ENDIF.

Bu ID, Containerdan kolayca bulunabilir

45

WorkFlow Kurulum Klavuzu

END-OF-SELECTION.

Ancak; SAT/SAS onay gibi baz standart sreler, kendi WorkFlow BAPIlerine sahiptir. Yerine gre bu
BAPIler de arlabilir.


Ekran bu ekilde yrtldnde, sz konusu IDyi ieren Task ekrana gelecektir.


Sz konusu satr seip Edit Work Item Execute Without Check (veya Execute Work Item)
mensne girildiinde, sz konusu admn yrtlecei ekrana eriiyoruz. Aada, SAT onay ile ilgili
rnek ekran grebilirsiniz.

46

WorkFlow Kurulum Klavuzu

Vekalet Durumunda Vekilin Tespiti


Bu ihtiya, aadaki rnek kodla karlanabilir.
function zrn_mm_sat_wf_get_vekil.
*"--------------------------------------------------------------------*"*"Local Interface:
*" IMPORTING
*"
REFERENCE(I_BNAME) TYPE XUBNAME
*" EXPORTING
*"
REFERENCE(E_VEKIL) TYPE ZRN_MMT_WF_SMTP
*"--------------------------------------------------------------------data:
ls_d2 type hrus_d2,
ls_vekil like line of e_vekil.
refresh e_vekil.
select
where
and
and
and

* from hrus_d2 into ls_d2


us_name eq i_bname
active eq 'X'
begda
le sy-datum
endda
ge sy-datum.

clear ls_vekil.

47

WorkFlow Kurulum Klavuzu

ls_vekil-bname = ls_d2-rep_name.
select single smtp_addr
into ls_vekil-email
from
adr6 as a
inner join usr21 as u
on a~persnumber eq u~persnumber
and a~addrnumber eq u~addrnumber
where u~bname eq ls_d2-rep_name .
collect ls_vekil into e_vekil.
endselect.
endfunction.

WorkFlow letilerinin Silinmesi


Herhangi bir noktada; belge silinmesi, sre iptali gibi sebeplerden tr kullanclarn Inboxlarnda
bekleyen onay taleplerini silmek isteyebilirsiniz. Bu durumda, rswwwide adl standart program
arabilirsiniz; ilem kodu: SWWL. Aada, bu program arp onay bekleyen i kalemlerini silen
rnek bir fonksiyon bulunmaktadr:
function zsdwf_delete_work_items.
*"----------------------------------------------------------------------
*"*"Local Interface:
*" IMPORTING
*" REFERENCE(I_WI_ID) TYPE SWW_WIID
*"----------------------------------------------------------------------

ranges:
lr_wi_id for swwwihead-wi_id,
lr_wi_type for swwwihead-wi_type,
lr_wi_stat for swwwihead-wi_stat,
lr_wi_cd for swwwihead-wi_cd,
lr_wi_ct for swwwihead-wi_ct,
lr_wi_aed for swwwihead-wi_aed,
lr_wi_aagent for swwwihead-wi_aagent.

* Gnderilen Work Item ve
* Bu Work Item'a ait olabilecek dier iletiler
refresh lr_wi_id.

lr_wi_id-option = 'EQ'.
lr_wi_id-sign = 'I'.
lr_wi_id-low = i_wi_id.
append lr_wi_id.

select wi_id as low
appending corresponding fields of table lr_wi_id
from swwwihead
where wi_chckwi eq i_wi_id.

loop at lr_wi_id where option is initial.

48

WorkFlow Kurulum Klavuzu

lr_wi_id-option = 'EQ'.
lr_wi_id-sign = 'I'.
modify lr_wi_id.
endloop.

* Gnder
submit rswwwide
with it_aagnt in lr_wi_aagent
with it_aed in lr_wi_aed
with it_cd in lr_wi_cd
with it_ct in lr_wi_ct
with it_id in lr_wi_id
with it_stat in lr_wi_stat
with it_type in lr_wi_type
with i_disply eq 'X'
with i_commit eq 'X'
with i_dellog eq 'X'
and return.

endfunction.

Ancak; bu program (doal olarak) gnderilmi E-Posta iletilerini silememektedir. Sadece SAP i ak
Inboxundaki iletileri silmektedir.

Faydal Workflow Nesneleri


Tablolar





SWWWIHEAD: Workflow Runtime: Header Table for All Work Item Types
SWWLOGHIST: Workflow Runtime: History of a Work Item
SWP_HEADER: Workflow Instances: Header Data of a Workflow Execution
SWW_CONTOB: Workflow Runtime: Work Item Data Container (Only Objects)
SWW_CONT: Workflow Runtime: Work Item Data Container
SWWUSERWI: Kullancya ilikin yrrlkteki i kalemleri

Modllere zel pular


DMS
Dkman Yaratld Anda WorkFlow Tetiklemek
DMS Uyarlamalar
SPRO Cross Application Components Document Management Document Distribution
General Settings SAP Business Workflow mens alr.

49

WorkFlow Kurulum Klavuzu


Activate Event-Type Linkage
Bu men admna bir kez tklanmas yeterlidir. Bu ekilde, dkman ynetimi olay balantlar aktive
edilecektir.
Allocate Tasks To Persons Reponsible
Buras, btn ilemin en kritik yeridir.


Activate Event Linking
Birinci admda; Activate event linking mensne tklyoruz.

50

WorkFlow Kurulum Klavuzu


Burada, bizi Change Document Info Record ve Create Object Of Type DRAW Taskleri
ilgilendiriyor. Bu Tasklerden ilki bir dkman gncellendiinde, ikincisi ise yaratldnda alacak.
TS00007842ye tklayarak, Goto Display Object mensne giriyoruz. Karmza gelecek pencerede,
Triggering events blmne girip aadaki deerleri giriyoruz:


Ayn ekranda, Binding de otomatik olarak retilebiliyor olmal. Soldaki butonu yeil hale getirerek
adm aktive ediyoruz. Bu ekilde; Biri dkman gncellediinde, DRAW adl Business Objectin
CHANGED olayn tetikle demi olduk.
imdi ayn ilemi TS00408150 iin de yapacaz.

51

WorkFlow Kurulum Klavuzu


Bu admlar dzgn bir ekilde yapp geri ktmzda, EVENT listesi dolmu olmaldr.


Artk buradan geriye kabiliriz.
Assign Agents
Bu balantya tkladmzda, karmza eitli DMS grevlerine kimlerin atanacann belirlenecei
ekran gelecektir.


Bizi burada da Change document info record ve Create object of type DRAW admlar
ilgilendiriyor. Bu admlara ilgili kiiler (standart Agent mant ile) atanabilir; ama sade bir kurulumda
bu Taskleri General Task yapmak iyi bir fikir olacaktr.
Bunun iin, her bir Taski seip yukardaki Attributes... dmesine tklyoruz ve General Task
seeneini iaretliyoruz.

52

WorkFlow Kurulum Klavuzu


Verify Workflow Customizing
Eer gerekiyorsa, bu admda WorkFlow uyarlamalar test edilebilir. Ancak; sistem zerinde dzgn
alan baka WorkFlowlar varsa, buraya girmeye gerek yok.
WorkFlowun Hazrlanmas
SWDD ekranna girip yeni bir WorkFlow yaratyoruz. WorkFlow ekrannda Goto Basic data
ekranna gidiyoruz. Karmza gelecek ekrann Start Events ksm, DMS balants iin kritik blgedir.


Buraya, (daha nce DMS Tasklerini balam olduumuz) DRAW CREATED ve DRAW CHANGED
olaylarn gireceiz. Sol taraftaki Binding dmesi ile, DRAWdan gelen nesneler ile WorkFlow
Container nesneleri arasndaki aktarmlar ayarlanabilir. zellikle _EVT_OBJECT nesnesi,
yaratlan/gncellenen dkmanla ilgili btn detaylar getirdii iin bizim amzdan kritik olacaktr.

53

WorkFlow Kurulum Klavuzu


Bu adm tamamladktan sonra soldaki gri dmeleri yeil hale getirip olaylar aktive ediyoruz.
WorkFlow emas artk yle gzkyor olmal:


Burada Document Changed ve Document Created olaylarna dikkat edin. Ben yaptm rnekte,
aaya bir de Dkman yaratld mesaj gnderecek adm ekledim. Gerek bir projede, Eventlerin
altna standart WorkFlow ak eklenmelidir.
Uygulama rnei
Kullanc, CV01Nye giderek yeni bir
dkman yaratyor

54

WorkFlow Kurulum Klavuzu

Dkman yaratldktan ksa bir sre


sonra, ilgili kiiye Yeni dkman
yaratld mesaj iletiliyor

Olaylar Kendi Programmzdan Tetiklemek


Eer i akn balatacak olan onay kendi yazdmz bir programdan tetiklemek istiyorsanz,
WorkFlowu Balatmak balna gz atn.

MM
SAT & SAS in User Exit le Agent Belirleme
Onay kodlar ierisine giriyoruz.


Herhangi bir onay kodunun ak stununda F4e basp, 9 Kullanc k yoluyla rol alm
deerini seiyoruz. O andan itibaren, sz konusu kod iin User Exit devreye girecektir.


Ama hangi User Exit? Bu sorunun cevab iin, Satnalma altndaki Satnalma iin gelitirmeler
mensnn yanndaki yardm seiyoruz.

55

WorkFlow Kurulum Klavuzu


Karmza gelecek ekranda, satnalmaya ait eit eit User Exiti liste halinde grebiliriz. Bu User
Exitlerden bir tanesi, SAT dngsnn muhatap seimine tekabl ediyor.


M06B0001e baktmzda, iinde tek bir Component olduunu gryoruz.


Bu fonksiyon, btn EBAN deerlerini ve onay kodunu getiriyor. Bu Exit ierisinde yapmamz gereken
ey, gelen deerlere gre gerekli deerlendirmeyi yapp, ACTOR_TAB ierisinde onay verecek kiinin
Usern (veya personel numarasn, grup numarasn, vs) dndrmek.

56

WorkFlow Kurulum Klavuzu


Eer ayn ii SAS iin yapmak isteseydik, aadaki User Exiti ayn mantkla kullanabilirdik:


Onay Durumunun Tespiti
BAPI_PO_GETRELINFO fonksiyonu, SAS onay durumunu dndrmektedir.
BAPI_REQUISITION_GETRELINFO ise, SAT onay durumunu dndrmektedir.
SAT durumu iin, bu rnek fonksiyonu inceleyelim.
Hi onaylanmam bir SAT kalemi iin; fonksiyon, aadaki ekilde veri dndrecektir:

57

WorkFlow Kurulum Klavuzu


Dikkat ederseniz, ortada hi onay olmad iin RELEASE_ALREADY_POSTED tablosu botur.
RELEASE_FINAL tablosunda ise, olmas gereken onaylar grebilirsiniz:

58

WorkFlow Kurulum Klavuzu


Ksmen onaylanm bir SAT kalemi iin; fonksiyon, aadaki ekilde veri dndrecektir:

59

WorkFlow Kurulum Klavuzu


Normalde 6 onay verilmi olmas gerekirken; burada henz 4 tanesinin verildiini gryoruz.
Tamamen onaylam bir SATta ise, tabloda 6 onayn 6s birden gzkecektir:


Ne var ki; bu fonksiyonda bir SATn reddedildiine dair herhangi bir bilgi bulamazsnz.
Sradaki onay kodunu dndren rnek bir ABAP kodu aada grlebilir. Bu kod belli bir senaryo iin
hazrlanmtr; modifiye etmek gerekebilir.

60

WorkFlow Kurulum Klavuzu

METHOD get_next_frgab.

DATA:
lit_final TYPE STANDARD TABLE OF bapirlcorq,
lrd_final TYPE REF TO bapirlcorq,

lit_gen TYPE STANDARD TABLE OF bapirlgnrq,
lrd_gen TYPE REF TO bapirlgnrq,

lit_posted TYPE STANDARD TABLE OF bapirlcorq,
lrd_posted TYPE REF TO bapirlcorq,

lit_return TYPE isi_bapireturn_tt,

lfd_bnfpo1 TYPE bnfpo.

* Onay bilgilerini okuyalm
CALL FUNCTION 'BAPI_REQUISITION_GETRELINFO'
EXPORTING
number = pfd_i_banfn
TABLES
general_release_info = lit_gen
release_already_posted = lit_posted
release_final = lit_final
return = lit_return.

LOOP AT lit_return TRANSPORTING NO FIELDS WHERE type IN zbccl_log=>get_crit_msgty_range(
).
EXIT.
ENDLOOP.

IF sy-subrc EQ 0.
RAISE EXCEPTION TYPE zcx_mm_mobile_pr_approval
EXPORTING
textid = zcx_mm_mobile_pr_approval=>mevcut_onay_durumu_tespit
banfn = pfd_i_banfn
return = lit_return.
ENDIF.

* Tablo okuma; beklenmedik durumlarda hata
READ TABLE lit_final INDEX 1 REFERENCE INTO lrd_final.

IF lrd_final IS INITIAL.
RAISE EXCEPTION TYPE zcx_mm_mobile_pr_approval
EXPORTING
textid = zcx_mm_mobile_pr_approval=>mevcut_onay_durumu_tespit
banfn = pfd_i_banfn.
ENDIF.

lfd_bnfpo1 = lrd_final->preq_item.

LOOP AT lit_final REFERENCE INTO lrd_final WHERE preq_item EQ lfd_bnfpo1.
ENDLOOP.

61

WorkFlow Kurulum Klavuzu


READ TABLE: lit_posted INDEX 1 REFERENCE INTO lrd_posted,
lit_gen INDEX 1 REFERENCE INTO lrd_gen.

IF lrd_final IS INITIAL.
RAISE EXCEPTION TYPE zcx_mm_mobile_pr_approval
EXPORTING
textid = zcx_mm_mobile_pr_approval=>mevcut_onay_durumu_tespit
banfn = pfd_i_banfn.
ENDIF.

IF lrd_gen IS NOT INITIAL AND lrd_gen->rel_ind NE abap_true.
RAISE EXCEPTION TYPE zcx_mm_mobile_pr_approval
EXPORTING
textid = zcx_mm_mobile_pr_approval=>onay_bloke
banfn = pfd_i_banfn.
ENDIF.

* Sradaki onay kodunu dndrelim
IF lrd_posted IS INITIAL OR ( lrd_posted->rel_code1 IS INITIAL AND lrd_final->rel_code2
IS NOT INITIAL ).
pfd_r_frgab = lrd_final->rel_code1.
RETURN.
ENDIF.

IF lrd_posted->rel_code2 IS INITIAL AND lrd_final->rel_code2 IS NOT INITIAL.
pfd_r_frgab = lrd_final->rel_code2.
RETURN.
ENDIF.

IF lrd_posted->rel_code3 IS INITIAL AND lrd_final->rel_code3 IS NOT INITIAL.
pfd_r_frgab = lrd_final->rel_code3.
RETURN.
ENDIF.

IF lrd_posted->rel_code4 IS INITIAL AND lrd_final->rel_code4 IS NOT INITIAL.
pfd_r_frgab = lrd_final->rel_code4.
RETURN.
ENDIF.

IF lrd_posted->rel_code5 IS INITIAL AND lrd_final->rel_code5 IS NOT INITIAL.
pfd_r_frgab = lrd_final->rel_code5.
RETURN.
ENDIF.

IF lrd_posted->rel_code6 IS INITIAL AND lrd_final->rel_code6 IS NOT INITIAL.
pfd_r_frgab = lrd_final->rel_code6.
RETURN.
ENDIF.

IF lrd_posted->rel_code7 IS INITIAL AND lrd_final->rel_code7 IS NOT INITIAL.
pfd_r_frgab = lrd_final->rel_code7.
RETURN.

62

WorkFlow Kurulum Klavuzu

ENDIF.

IF lrd_posted->rel_code8 IS INITIAL AND lrd_final->rel_code8 IS NOT INITIAL.
pfd_r_frgab = lrd_final->rel_code8.
RETURN.
ENDIF.

RAISE EXCEPTION TYPE zcx_mm_mobile_pr_approval
EXPORTING
textid = zcx_mm_mobile_pr_approval=>mevcut_onay_durumu_tespit
banfn = pfd_i_banfn.

ENDMETHOD.

Programdan SAT Redddetmek



method reject_pr.

PFD_I_BANFN TYPE BANFN Satnalma talebi numaras
PFD_I_FRGAB TYPE FRGAB Satnalma talebi onay kodu

data:
lit_conta type standard table of swr_cont,
lrd_conta type ref to swr_cont,

lit_msgl type standard table of swr_messag,
lit_msgs type standard table of swr_mstruc,

lit_xeban type standard table of ueban,
lrd_xeban type ref to ueban,

lit_yeban type standard table of ueban,

lit_xebkn type standard table of uebkn,
lit_yebkn type standard table of uebkn,

lfd_okey type swr_struct-object_key.

* Mevcut veriler

select * into corresponding fields of table:
lit_xeban ##too_many_itab_fields
from eban where banfn eq pfd_i_banfn,

lit_xebkn ##too_many_itab_fields
from ebkn where banfn eq pfd_i_banfn.

lit_yeban[] = lit_xeban[].
lit_yebkn[] = lit_xebkn[].

* EBAN durum deiiklii

63

WorkFlow Kurulum Klavuzu


loop at lit_xeban reference into lrd_xeban.
lrd_xeban->kz = c_cdchngind_update . "U
lrd_xeban->banpr = c_banpr_red . "08
endloop.

call function 'ME_UPDATE_REQUISITION'
tables
xeban = lit_xeban
xebkn = lit_xebkn
yeban = lit_yeban
yebkn = lit_yebkn.

call function 'ME_UPDATE_REQUISITION_CHNGDOC'
tables
xeban = lit_xeban
xebkn = lit_xebkn
yeban = lit_yeban
yebkn = lit_yebkn.

commit work and wait.

* aknda red Event'ini tetikleme

append initial line to lit_conta reference into lrd_conta.
lrd_conta->element = 'RELEASECODE'.
lrd_conta->value = pfd_i_frgab.

loop at lit_xeban reference into lrd_xeban.

concatenate lrd_xeban->banfn lrd_xeban->bnfpo into lfd_okey.

call function 'SAP_WAPI_CREATE_EVENT'
exporting
object_type = 'BUS2105'
object_key = lfd_okey
event = 'REJECTED'
commit_work = abap_true
tables
message_lines = lit_msgl
message_struct = lit_msgs.

endloop.

* Mevcut i aklarn durdurma (Event ie yaramazsa)

loop at lit_xeban reference into lrd_xeban.
cancel_active_wfs( lrd_xeban->banfn ).
endloop.

endmethod.

64

WorkFlow Kurulum Klavuzu


method cancel_active_wfs.

PFD_I_BANFN TYPE BANFN Satnalma talebi numaras

data:
lit_wi type standard table of swr_wihdr,
lrd_wi type ref to swr_wihdr,

lwa_por type sibflporb.

* WF listesi

lwa_por-instid = pfd_i_banfn.
lwa_por-typeid = 'BUS2105'.
lwa_por-catid = 'BO'.

call function 'SAP_WAPI_WORKITEMS_TO_OBJECT'
exporting
object_por = lwa_por
tables
worklist = lit_wi.

check lit_wi[] is not initial.

* Cancel

loop at lit_wi reference into lrd_wi.

call function 'SAP_WAPI_ADM_WORKFLOW_CANCEL'
exporting
workitem_id = lrd_wi->wi_id.

endloop.


endmethod.

Yetkilendirme
ak tetikleyecek olan kiilere, S_RFC ve S_WF_WI yetkilerinin verilmi olmas gerekmektedir.
Bunun yan sra; bu kiiler, i akna konu olan ilem ile ilgili yetkilere de sahip olmaldr. rnein SAT
ile ilgili bir i ak sz konusuysa, SAT aabilecek yetkilere de sahip olmaldr.
Java zmnn uyguland yerlerde; Web zerinden onay verecek kiilerin de S_RFC yetkisine
sahip olmas gerekmektedir. Bunun yan sra, onay verecekleri ekranlara ait yetkilerin de verilmi
olmas gerekmektedir.

65

WorkFlow Kurulum Klavuzu

Vekalet
aknda vekalet vermek iin, SBWP ilem kodunda Ayarlar Ak Ayarlar Vekil Bakm
mens kullanlabilir. Kaydedilen vekiller, HRUS_D2 tablosunda saklanr.
Vekil girii srasnda, bir vekalet profili seilmelidir.


Bu vekaletin geerli olaca Tasklerde, ayn vekil profilinin bulunmas gerekmektedir.

66

WorkFlow Kurulum Klavuzu


Vekillerde eksik rol olursa, Inboxlarna dse bile onay veremezler. Eksik rolleri tamamlayan
aadaki Method, bir program / Job olarak kurulabilir.

67

WorkFlow Kurulum Klavuzu


METHOD

set_auth_to_substitudes.

DATA: lt_agr

TYPE tt_bapiagr,

lt_bapiret2

TYPE bapiret2_tab,

lt_cust

TYPE STANDARD TABLE OF zbct_wf_sub_role,

lt_cust_rng

TYPE tt_sub_role,

lt_master_role TYPE tt_agr_users,

lt_sub_role

TYPE tt_agr_users,

lt_hrus_d2

TYPE STANDARD TABLE OF hrus_d2,

lt_t77ro

TYPE STANDARD TABLE OF t77ro,

lv_after

TYPE i,

lv_before

TYPE i.

Verilmi vekaletleri tespit et


SELECT * INTO TABLE lt_hrus_d2
FROM hrus_d2
WHERE begda

LE sy-datum

AND endda

GE sy-datum

AND active EQ abap_true.

CHECK sy-subrc EQ 0.

Vekalet verenlerin ve alann var olan rollerini tespit et


SELECT agr_name uname from_dat to_dat
INTO CORRESPONDING FIELDS OF TABLE: lt_sub_role FROM agr_users
FOR ALL ENTRIES IN lt_hrus_d2
WHERE uname EQ lt_hrus_d2-rep_name,

68

WorkFlow Kurulum Klavuzu

lt_master_role FROM agr_users


FOR ALL ENTRIES IN lt_hrus_d2
WHERE uname

EQ lt_hrus_d2-us_name

AND from_dat LE lt_hrus_d2-endda


AND to_dat

GE lt_hrus_d2-begda.

Vekil profillerinin tanmlarn al


SELECT * INTO TABLE lt_t77ro
FROM t77ro
WHERE EXISTS ( SELECT tclass FROM zbct_wf_sub_role WHERE tclass EQ t77ro~tclass ).

Uyarlamay oku
SELECT * INTO TABLE lt_cust FROM zbct_wf_sub_role.

IF sy-subrc NE 0.
RAISE EXCEPTION TYPE zcx_bc_table_content
EXPORTING
objectid = 'ROLE'
tabname

= 'ZBCT_WF_SUB_ROLE'

textid

= zcx_bc_table_content=>entry_missing.

ENDIF.

lt_cust_rng = CORRESPONDING #( lt_cust ).


SORT lt_cust_rng BY tclass.
DELETE ADJACENT DUPLICATES FROM lt_cust_rng COMPARING tclass.

LOOP AT lt_cust_rng ASSIGNING FIELD-SYMBOL(<ls_cust_rng>).


LOOP AT lt_cust ASSIGNING FIELD-SYMBOL(<ls_cust>) WHERE tclass EQ <ls_cust_rng>-tclass.
APPEND VALUE #( option = <ls_cust>-ddoption
sign

= c_sign_i

low

= <ls_cust>-agr_name ) TO <ls_cust_rng>-agr_name_rng.

ENDLOOP.
ENDLOOP.

Her bir vekalet kayd iin inceleme yapp BAPI verilerini hazrla ve ar

69

WorkFlow Kurulum Klavuzu

LOOP AT lt_hrus_d2 ASSIGNING FIELD-SYMBOL(<ls_hrus_d2>).

CLEAR lt_agr[].

LOOP AT lt_cust_rng ASSIGNING <ls_cust_rng>.

CHECK line_exists( lt_t77ro[ KEY primary_key COMPONENTS reppr

= <ls_hrus_d2>-reppr

tclass = <ls_cust_rng>-tclass

] ).

LOOP AT lt_master_role ASSIGNING FIELD-SYMBOL(<ls_master_role>) WHERE agr_name IN


<ls_cust_rng>-agr_name_rng
AND uname

EQ

<ls_hrus_d2>-us_name.

LOOP AT lt_agr TRANSPORTING NO FIELDS WHERE agr_name EQ <ls_master_role>-agr_name


AND from_dat LE <ls_hrus_d2>-endda
AND to_dat

GE <ls_hrus_d2>-begda.

EXIT.
ENDLOOP.

CHECK sy-subrc NE 0.

MESSAGE s107(zbc) WITH <ls_hrus_d2>-us_name <ls_hrus_d2>-rep_name <ls_master_role>agr_name.


co_log->add_sy_msg( ).

APPEND VALUE #( agr_name = <ls_master_role>-agr_name


from_dat = <ls_hrus_d2>-begda
to_dat

= <ls_hrus_d2>-endda ) TO lt_agr.

ENDLOOP.

ENDLOOP.

CHECK lt_agr[] IS NOT INITIAL.

70

WorkFlow Kurulum Klavuzu

LOOP AT lt_sub_role ASSIGNING FIELD-SYMBOL(<ls_sub_role>) WHERE uname EQ <ls_hrus_d2>rep_name.

APPEND VALUE #( agr_name = <ls_sub_role>-agr_name


from_dat = <ls_sub_role>-from_dat
to_dat

= <ls_sub_role>-to_dat ) TO lt_agr.

ENDLOOP.

CLEAR lt_bapiret2[].

CALL FUNCTION 'BAPI_USER_ACTGROUPS_ASSIGN'


EXPORTING
username

= <ls_hrus_d2>-rep_name

TABLES
activitygroups = lt_agr
return

= lt_bapiret2.

co_log->add_bapiret2( lt_bapiret2 ).

ENDLOOP.

ENDMETHOD.

Hatalar ve zmler
Genel Hatalar
WorkFlow Tetiklenmiyor
ncelikle temel WorkFlow ayarlarnn doru olduundan emin olun.
Tm ayarlar doru olmasna ramen i ak tetiklenmiyorsa, SWUD ilem koduna gidin, yukarya
tetiklenmeyen WorkFlowun kodunu girin ve Problem: Task not started dmesine tklayn.

71

WorkFlow Kurulum Klavuzu

Yeni ekranda, WorkFlowu tetikleyemeyen kiinin kullanc adn girin ve Event Queue (tRFC log)
dmesine tklayn. (Bu blmdeki dier dmeler de iinize yarayabilir)


Burada karnza gelecek olan liste, sz konusu kullancda ortaya km WorkFlow hatalarn
listeleyecektir. Bu hatalar inceleyerek gerekli dzeltmeleri yapabilirsiniz.
WorkFlowu Tekrar Balatmak
Hata alm bir i aknn tekrar balatlmas, SWPR ilem kodundan yaplr.
Hata almadan sonulanm bir i akn, ilgili Eventi tetikleyerek tekrar balatmak iin SWUE ilem
kodu kullanlabilir.
Configure RFC Destination Problemleri
Temel Workflow ayarlarn yaparken, Configure RFC Destination blmnde RFC balants veya
kullanc ile ilgili hatalar alyorsanz, veya tetiklenmeyen bir WorkFlowun Event Queue blmnde
Incorrect Logon tarz bir ileti alyorsanz, problemin zm iin u admlar takip edin:
SM59a giderek ilgili RFC balantsn silin
SU01de (n planda kullanlan bir hesap deilse) sz konusu kullanc hesabn silin
SU01de WF-BATCH adnda yeni bir hesap yaratn. Kullanc tipi C olsun (letiim kullanc
harici RFC)
SM59da RFC balantsn tekrar yaratn (balant tipi: L, Unicode: aktif), kaydedin, ve
kaydettikten sonra tekrar iine girip yeni yarattnz WF-BATCH kullancsnn bilgilerini girin
SWUDa giderek RFC Destination ayarlarn tekrar yapn
Annda Beliren Onay Ekran
Diyelim ki bir MM belgesinin arkasnda hemen WorkFlow tetikleniyor. Belgeyi yaratan kii ile onay
vermesi gereken ilk kii ayn ise, belge yaratlr yaratlmaz kiinin karsna onay penceresi gelebilir.
Bunu nlemek iin, WorkFlowun tetiklenme Eventi ile onay ekran arasna Dummy bir Background
Step koyabilirsiniz.
Bo OOCU Listesi
OOCU ilem koduna girdiinizde, grevleri ve i aklarn listelemeniz gereken ekranda listeye hibir
ey gelmediini gryorsanz, bu problemin sebebi yetkilendirme olabilir. OOSP / OOSB ilem
kodlarna giderek, kullancnzn yeterli yetkiye sahip olduundan emin olun ve tekrar deneyin.

72

WorkFlow Kurulum Klavuzu

Hata letileri
... grevinin ileme tayini yok
Bu hatay almanzn sebebi byk ihtimalle sz konusu Taskin General Task olmamasdr. Taski
General Task haline getirin ve tekrar deneyin.
Agents of type A cannot be defined
Bu hatann alnmas, i ak admndaki muhatabn belirlenemediine iaret eder. Hatay gidermenin
en basit ve genel zm, sz konusu Taski General Task haline getirmektir. Daha zel
durumlarda; Taskin gnderildii kiinin, Taski ileyebilecek kiilerden biri olduundan emin olun.
User Exit kullanyorsanz, Taski ileyebilecek herhangi birinin bulunamam olmas da bu hataya yol
aabilir.
Object Type WF Is Not Valid
Bu hatay MM satnalma srecinde alyorsanz, bunun sebebi onay stratejisi uyarlamasnda retim
yerlerinin girilmemi olmas olabilir.
SWF_RUN 594
SAS WorkFlowu baladktan sonra ilgili kiinin Inboxuna hibir ey dmyorsa ve WorkFlow
yneticisine bu hata iletiliyorsa, 797775 numaral OSS notunun uygulanmas gerekebilir.
Bunun yan sra, SAS i akndaki (SWDD) onay verme admnn General Task olarak iaretlenmi
olmas da gerekebilir.
Dier Agent hatalar
ki Clientl bir sistemde alyorsanz, Generic Task haline getirdiiniz Taskleri SCC1 ile test yaptnz
Clienta da tamalsnz. Bunu yapmadysanz, Test Clientnda hata alabilirsiniz.
Bir Task sistemdeki gm kullanclara gidiyorsa; sebebi muhtemelen esas Agentn belirlenemiyor
olmas ve Taskin Generic Task olarak iaretlenmi olmasdr. Agentu Rule ile belirliyorsanz, Ruleun
Yaratlmas bal altnda Terminate if Rule Resolution Without Result aklamasna dikkat edin.

Works Cited
Wilson, K. (2007, 06 10). Workflow Start transaction in NetWeaver. 12 15, 2009 tarihinde ERP Genie:
http://www.erpgenie.com/abaptips/content/view/460/1/ adresinden alnd

You might also like