Using function module PT_ARQ_REQUEST_EXECUTE to approve leave requests
I'm building a screen to approve or reject multiple leave requests using function module PT_ARQ_REQUEST_EXECUTE as the SAP standard program RPTARQAPP does, and this seems to be working fine. However, I also need to include a note from the approver which is a bit of long text that ends up in table PTREQ_NOTICE. This is something that RPTARQAPP does not do.
I cannot find any way of passing this text into PT_ARQ_REQUEST_EXECUTE. The only way I can find of doing this is to call FM PT_ARQ_REQUEST_PREPARE first (command = PREPARE_APPROVE), update the CURR_NOTICE field it sends back in structure EX_REQUEST, then pass the changed EX_REQUEST structure into FM PT_ARQ_REQUEST_CHECK (command = CHECK_APPROVE) and then call PT_ARQ_REQUEST_EXECUTE (command = EXECUTE_APPROVE). This works fine for a single leave request, but when I try to use this process to approve two leave requests the CHECK FM gives me an error on the second record with a message referring to a time conflict with the first message even though the dates on each are not the same.
I've searched and there are a few posts about these FMs, but I still can't fix this problem. Has anyone ever dealt with this situation before and found a solution?
I've replaced the call to FM PT_ARQ_REQUEST_CHECK with the following and it seems to work pretty well. Though of course it will need a lot more testing.
STATICS:
request TYPE REF TO if_pt_req_request.
CALL METHOD ca_pt_req_header=>agent->get_request
EXPORTING
im_request_id = p_im_request_id
IMPORTING
ex_request = request
EXCEPTIONS
request_not_found = 1.
CALL METHOD request->set_notice
EXPORTING
IM_NOTICE = p_approver_text.
Similar Messages
-
Function Module BAPI_ABSENCE_CREATE for creating leave request.
Hi Experts,
I am using FM BAPI_ABSENCE_CREATE for creating leave request. I am passing all the data into this as import parameter. When i am executing this return table gives statement EPG184Employee/applicant is not locked yet
Please let me know what i have to follow.
Thanks And Regards
Ranjeet SinghUse the below function modules in sequence
1) HR_EMPLOYEE_ENQUEUE'
2) BAPI_ABSENCE_CREATE
3) HR_EMPLOYEE_DEQUEUE
Functionality
Using this method, an Absences infotype record (2001) can be created.
Notes
Messages are returned in the RETURN parameter. The parameter documentation contains the return codes and their meanings.
The key fields used by this method are described under the parameters.
This method can only be used if the ENQUEUE method has already been called up for the business object EMPLOYEE. For more information on the ENQUEUE method, please see the documentation on the function module BAPI_EMPLOYEE_ENQUEUE.
Note: Create absence
Caution! This API method only writes the Absences infotype (2001). It should no longer be used as it can lead to inconsistent time data. Instead, please use the corresponding 'ManageCreation' API method for business object BUS7007.
Regards,
SaiRam -
ESS/MSS: Approve Leave Request in UWL - not working
Hi to all,
we are using web dynpro ESS/ MSS (SAPESS07_12/ SAPMSS07_4) in portal NW04s for mySAP ERP2005 and are using UWL in order to approve leave requests. If employees are creating leave requests, everything works fine. After that the manager opens the leave request in UWL, the web dynpro application is openening succesfully and after some clicks he reaches the buttons to approve or reject the leave request. But by pushing one of them the following messages occures :
<b>Workitem 000000000000 Cannot be read</b>
After pushing the button again, another message comes up:
<b>No Customizing for status typ ARQ, Status approved...</b>
By the way, the same errors also come up when the employee wants to delete his leave request which is not approved.
Any ideas, what can be the reason?
Regards,
FrankHi Ashutosh,
I have found the reason. The user <b>WF - Batch</b> in sap erp, which is using the RFC Destination for workflow, was locked. Well, it is a a little bit strange for a cummunication user that he becomes locked. Unlocked him, now all works.
Thanks for your support.
Regards,
Frank -
Issue in Deletion of approved leave request using ws12300111
We are using Std workflow 12300111 and its working fine for new leave request and change leave request but when raise request for deletion of approved leave request the workitem created and info type updated automatically without seeking approval from manager. When you check the workflow log the agent determination happend and updated the info type 2001. This issue is in production system , At the same time if we tested the same scenario in QAS its working fine, ie its asking approval from Manager.
Pl help on this issue.
Regards,
MuthuThis is correct and intended functionality, NO WF IS triggered.
Let me explain, There is no WF triggered when APPROVED (NOT POSTED)
absence is deleted. This is standard, You can trigger a mail
which You had already done so. But there will be no WF triggered.
So if you notice
when the leave request is in status POSTED, it calls the workflow,
but if the leave request is not POSTED yet, it is doesnt call the
workflow.
There is no standard Workflow triggered when the Approved leave request
has been deleted by the employee!
This step should be configured by the customers as when to trigger a
mail to the Admin or Supervisor, when deletion or cancellation happens.
The workflow template is a simple template, You can modify
to suit their needs. -
ITSM Service Request - Assigning Categories - Using Function Module
Hi,
We are trying to create an ITSM service request ticket from ECC, based on a workflow and its logic. I am calling a remote function module which will contain the logic as explained below.
I am creating a CRM ITSM service request(incident) ticket using function module CRM_ICSS_SRVREQ_CREATE.
The ticket is created but some of the fields that I need to populate in the transaction do not have an interface in this function module. I want to specify the category 1, category 2 and category 3.
I tried function module CRM_ORDER_MAINTAIN but I am unable to find the interface where I can populate this particular data. The component used here is btcategories/categories.
Can anyone suggest where this particular data needs to be populated.
Thanks,
AbdullahHi Abdulla
What parameter did you set for "Reported By" and "Message Processor" in the FM CRM_ICSS_SRVREQ_CREATE. I am having a lot of problems regarding this. Can you please help?
Thanks
Saumyendra -
Error while approving Leave request from UWL
Hi Experts,
We are getting following error while manager clicks on Universal Worklist to approve Leave Request. On system we have assigned ess id to employee no. 43 in IT 105-0001 but it gives error message about employee no. 167 which has nothing to do with this leave request.
Please go through following ST22 error log..
Short text of the error message:
"No data exists in this period for infotype 0105 and employee 00000167."
Trigger Location of Runtime Error
Program SAPLPT_ARQ_REQUEST_U
Include LPT_ARQ_REQUEST_UIAF
Row 186
Module type (FORM)
Module Name DUMP_IF_ERRORS
Source Code Extract
Line SourceCde
156 ENDCASE.
157
158 IF lock_indicator = 'X'. "ANK Note962342
159 status_ui = c_req_sent.
160 status_ui_text = 'gesendet'(s04).
161 endif. "ANK Note962342
162
163 ENDFORM. " set_request_status_ui_text
164
165 &----
166 *& Form dump_if_errors
167 &----
168 * text
169 ----
170 * -->MESSAGES text
171 ----
172 FORM dump_if_errors
173 USING
174 messages TYPE ptarq_uia_messages_tab.
175
176 FIELD-SYMBOLS:
177 <message> TYPE bapiret2.
178
179 LOOP AT messages ASSIGNING <message>.
180 IF <message>-type EQ c_message_error.
181
182 *Note 1168656 begin
183 * MESSAGE x999(53) WITH
184 * <message>-message
185 * <message>-type. "#EC *
>>>>> MESSAGE <message>-message type 'X'.
187 *Note 1168656 end
188 ELSEIF <message>-type EQ c_message_abend.
189 *Note 1168656 begin
190 * MESSAGE a999(53) WITH
191 * <message>-message
192 * <message>-type. "#EC *
193 MESSAGE <message>-message type 'A'.
194 *Note 1168656 end
195
196 ENDIF.
197 ENDLOOP.
198
199
200 ENDFORM. " check_errors
201
202 *&----
203 *& Form prepare_customizing_attibs
204 *&----
205 * text
Would really appreciate kind guidance to resolve the same.
Thanks.
AashishHi Ashish,
Short text of the error message:
"No data exists in this period for infotype 0105 and employee 00000167
This clearly suggests that the employee data is not up to date.
Go to Tcode : PC00_M40_CLSTR
here 40 is the country coding or the Molga value for India. Like wise which ever country you work for, enter the country code there instead of 40.
Enter the pernr as 00000167 and you would find till which date the payroll for 167 has been run successfully.It has to be in green color.
If the payroll is not run till the period in which you are getting the error ( which obvisouly is what the error means) try running the payroll by going to the Tcode : PC00_M40_CALC or you can ask your HR team to run this payroll for you and you are good to go.
Good Luck!
Sandeep Tudumu -
Error occurred while loading Generic extraction using Function module
Hi all
I'm trying to do INIT for Generic Extractor using Function module, but i'm getting error as "Error occurred in the source system"
Error message from the source system
Diagnosis
An error occurred in the source system.
System Response
Caller 09 contains an error message.
Further analysis:
The error occurred in Extractor .
Refer to the error message.
Procedure
How you remove the error depends on the error message.
Note
If the source system is a Client Workstation, then it is possible that the file that you wanted to load was being edited at the time of the data request. Make sure that the file is in the specified directory, that it is not being processed at the moment, and restart the request.
Job terminated in source system --> Request set to red
Message no. RSM078
Can u help plz....Hi Vishnu
This are the Job log details i found in source system...Can u tell what whould be the problem?
Message
Job started
Step 001 started (program SBIE0001, variant &0000000002861, user ID
Asynchronous transmission of info IDoc 2 in task 0001 (0 parallel tasks)
DATASOURCE = ZYFI102
RLOGSYS =
REQUNR = REQU_D9Y4CZDQULRIHRRVU33KOLQZO
UPDMODE = D
LANGUAGES = *
Current Values for Selected Profile Parameters *
abap/heap_area_nondia......... 0 *
abap/heap_area_total.......... 10737418240 *
abap/heaplimit................ 40000000 *
zcsa/installed_languages...... DE *
zcsa/system_language.......... E *
ztta/max_memreq_MB............ 2047 *
ztta/roll_area................ 3000000 *
ztta/roll_extension........... 2000000000 *
No authorization for Acct type D
Job cancelled after system exception ERROR_MESSAGE
Thanks in advance
Edited by: MohanDP on Feb 25, 2011 11:58 AM
Edited by: MohanDP on Feb 25, 2011 12:01 PM -
Error in Data selection in R/3 Generic Extraction Using function Modules
Hi Friends,
I have created a a generic data source using function module to load data from PA0000 and PA0001 Tables ,Function module is working fine when i execute it indipendently and the data source is also working fine when i extract data using RSA3. it is showing correct no of records 157.
When loading data into DSO from BW (using 3.x/7.0 flows) data is comming to PSA all 157 records but in the RSMO the load status is showing yellow when i look into the step by step analysis it is
data selection successfully started
Data selection successfully ended
All Data packets completed.
are showing in red.
after and hour time load getting failed and in the error message it is showing " job terminated in source system---> Request set to red"
it is giving this message wir no RSM 78.
Please let me know itHi Jerry,
Thanks for the immediate replay
But here in my source system job is getting terminated.
this is the status of job in Job logs.
the job is running till this step not going ahead.
Call customer enhancement BW_BTE_CALL_BW204010_E (BTE) with 157 records
Result of customer enhancement: 157 records
Call customer enhancement EXIT_SAPLRSAP_001 (CMOD) with 301 records
Result of customer enhancement: 157 records
Asynchronous send of data package 000001 in task 0002 (1 parallel tasks)
pl. update me if any idea. -
UWL Filter causing error while approving Leave Request
Hi Guys,
We recently applied MSS SP17 and we changed our UWL filter BADI to SWK1 Function group - SWK_LOCAL_INBOX_GET.
The filter works fine, but when we try to approve leave request, it somehow calls this piece of code again and does not allow (DUMPS) BADI to set the filter saying - this field is not modifiable.
Has anybody seen this before. Can anybody let me know how to resolve the issue?
Regards,
SCWe added a code that if leave request calls this code...skip it.
-
500 internal error while approving leave request
Hi All,
One of my user when trying to approve leave request, he is getting the following error. it was working previously but suddenly thsi error has come
500 internal server error
Application error occurred during request processing
Details: com.sap.tc.webdynpro.services.sal.core.Dispatcher exception: The requested deployable object 'sap.com/ess~lea' and application 'leaverequestapprove' are not deployed
Can anyone advise on this error please!!!
Thanks!
SwarnaprakashDear Swarnaprakash,
Hope you are doing good.
Do make sure that all ESS related applications/services are running.
Please try to restart the applications this way:
1. start the telnet admin tool
telnet <hostname> 5<instnum>08
2. logon using the J2EE Admnistrator user
3. lsc (to list the available servernodes)
4. jump <servernode> (usually jump 0)
5. add deploy
6. start_app -all
Please have a look at the below for more information:
[http://wiki.sdn.sap.com/wiki/display/TechTSG/(JSTSG)(Telnet)DeployController+Commands]
and
[http://help.sap.com/saphelp_nwpi711/helpdata/en/45/0ad8e787652d6ae10000000a11466f/frameset.htm]
If the issue still persists, please check if all the SDAs have been deployed for ESS (SCA->SAP ESS and Business packages)
Thank you and have a nice day :).
Kind Regards,
Hemanth -
Example of a Simple ALV Report using Function Modules (not OO)
Hi,
I am new to ABAP. Where can I get a proper Example of a Simple ALV Report using Function Modules? I searched the forum but did not find a proper solution. Kindly help.
Smruthi.
Edited by: Smruthi Acharya on Jan 29, 2009 7:13 PMHi,
Use this demo code:-
REPORT z_alv01 MESSAGE-ID zmsg.
* TABLES
TABLES : ekpo.
* TYPE POOLS
TYPE-POOLS : slis.
* TYPE DECLARATION
TYPES : BEGIN OF t_ekpo,
ebeln TYPE ekpo-ebeln,
ebelp TYPE ekpo-ebelp,
matnr TYPE ekpo-matnr,
werks TYPE ekpo-werks,
menge TYPE ekpo-menge,
END OF t_ekpo.
* PARAMETERS
PARAMETERS : s_var TYPE disvariant-variant.
* DATA DECLARATION
*VARIABLES
DATA : check(1),
rep_id TYPE sy-repid.
*INTERNAL TABLE TYPE OF ZEKPO
DATA : it_ekpo TYPE STANDARD TABLE OF t_ekpo WITH HEADER LINE.
*FIELD CATALOG
DATA : it_field TYPE slis_t_fieldcat_alv,
wa_field TYPE slis_fieldcat_alv.
*SORTING
DATA : it_sort TYPE slis_t_sortinfo_alv,
wa_sort TYPE slis_sortinfo_alv.
*FOR TOP OF THE PAGE
DATA : it_top TYPE slis_t_listheader,
wa_top TYPE slis_listheader.
*FOR END OF THE PAGE
DATA : it_end TYPE slis_t_listheader,
wa_end TYPE slis_listheader.
*TO CAPTURE EVENTS AND HANDLE
DATA : it_event TYPE slis_t_event,
wa_event TYPE slis_alv_event.
*FOR GRID TITLE
DATA : wa_title TYPE lvc_title.
*FOR LAYOUT
DATA : wa_layout TYPE slis_layout_alv.
*FOR EXCLUDING STANDARD BUTTON FROM ALV TOOLBAR
DATA : it_exclude TYPE slis_t_extab,
wa_exclude TYPE slis_extab.
*FOR VARIANT
DATA : wa_variant TYPE disvariant.
* INITIALIZATION
INITIALIZATION.
check = 'X'.
rep_id = sy-repid.
wa_variant-report = sy-repid.
*GET DEFUALT ON THE SELECTION SCREEN FOR DEFAULT DISPLAY
CALL FUNCTION 'REUSE_ALV_VARIANT_DEFAULT_GET'
EXPORTING
i_save = 'A'
CHANGING
cs_variant = wa_variant
EXCEPTIONS
wrong_input = 1
not_found = 2
program_error = 3
OTHERS = 4.
IF sy-subrc = 0. " IF DEFAULT VARIANT FOUND
s_var = wa_variant-variant. " PASS THE DEFAULT VARIANT TO THE SELECTION SCREEN FIELD
ENDIF.
* AT-SELECTION SCREEN ON VALUE REQUEST
* TO GET THE F4 HELP FOR VARIANT
AT SELECTION-SCREEN ON VALUE-REQUEST FOR s_var.
CALL FUNCTION 'REUSE_ALV_VARIANT_F4'
EXPORTING
is_variant = wa_variant
* I_TABNAME_HEADER =
* I_TABNAME_ITEM =
* IT_DEFAULT_FIELDCAT =
i_save = 'A'
* I_DISPLAY_VIA_GRID = ' '
IMPORTING
* E_EXIT =
es_variant = wa_variant
EXCEPTIONS
not_found = 1
program_error = 2
OTHERS = 3.
IF sy-subrc = 0.
s_var = wa_variant-variant. " PASS THE SELECTED VARIANT TO THE SELECTION SCREEN FIELD
ENDIF.
* AT-SELECTION SCREEN
* TO CHECK THE EXISTENCE FOR VARIANT
AT SELECTION-SCREEN.
wa_variant-variant = s_var.
CALL FUNCTION 'REUSE_ALV_VARIANT_EXISTENCE'
EXPORTING
i_save = 'A'
CHANGING
cs_variant = wa_variant
EXCEPTIONS
wrong_input = 1
not_found = 2
program_error = 3
OTHERS = 4.
IF sy-subrc <> 0.
MESSAGE w001.
ENDIF.
* START OF SELECTION
START-OF-SELECTION.
SELECT ebeln
ebelp
matnr
werks
menge
FROM ekpo
INTO TABLE it_ekpo.
* FIELD CATALOG
wa_field-fieldname = 'EBELN'.
wa_field-tabname = 'IT_TAB'.
wa_field-outputlen = 10.
wa_field-seltext_l = 'PO #'.
APPEND wa_field TO it_field.
CLEAR wa_field.
wa_field-fieldname = 'EBELP'.
wa_field-tabname = 'IT_TAB'.
wa_field-outputlen = 10.
wa_field-seltext_l = 'Line Item'.
APPEND wa_field TO it_field.
CLEAR wa_field.
wa_field-fieldname = 'MATNR'.
wa_field-tabname = 'IT_TAB'.
wa_field-outputlen = 15.
wa_field-seltext_l = 'Material'.
* wa_field-input = check.
* wa_field-edit = check.
APPEND wa_field TO it_field.
CLEAR wa_field.
wa_field-fieldname = 'WERKS'.
wa_field-tabname = 'IT_TAB'.
wa_field-outputlen = 6.
wa_field-seltext_l = 'Plant'.
* wa_field-input = check.
* wa_field-edit = check.
APPEND wa_field TO it_field.
CLEAR wa_field.
wa_field-fieldname = 'MENGE'.
wa_field-tabname = 'IT_TAB'.
wa_field-outputlen = 10.
wa_field-seltext_l = 'Qty.'.
* wa_field-input = check.
* wa_field-edit = check.
wa_field-do_sum = check.
APPEND wa_field TO it_field.
CLEAR wa_field.
* SORT W.R.T. PURCHASE ORDER NUMBER
wa_sort-spos = 1.
wa_sort-fieldname = 'EBELN'.
wa_sort-tabname = 'IT_EKPO'.
wa_sort-up = check.
wa_sort-subtot = check.
APPEND wa_sort TO it_sort.
CLEAR wa_sort.
* FOR GRID TITLE
wa_title = 'Hello'.
* FOR LAYOUT
wa_layout-zebra = check.
* FOR EXCLUDING STANDARD BUTTONS FROM ALV TOOLBAR
wa_exclude-fcode = '&OUP'.
APPEND wa_exclude TO it_exclude.
CLEAR wa_exclude.
wa_exclude-fcode = '&ODN'.
APPEND wa_exclude TO it_exclude.
CLEAR wa_exclude.
wa_exclude-fcode = '&OAD'.
APPEND wa_exclude TO it_exclude.
CLEAR wa_exclude.
* wa_exclude-fcode = '&AVE'.
* APPEND wa_exclude TO it_exclude.
* CLEAR wa_exclude.
wa_exclude-fcode = '&INFO'.
APPEND wa_exclude TO it_exclude.
CLEAR wa_exclude.
* POPULATE ALL EVENTS INTO INTERNAL TABLE
CALL FUNCTION 'REUSE_ALV_EVENTS_GET'
EXPORTING
i_list_type = 0
IMPORTING
et_events = it_event
EXCEPTIONS
list_type_wrong = 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.
ENDIF.
READ TABLE it_event INTO wa_event WITH KEY name = 'END_OF_LIST'.
wa_event-form = 'END'.
MODIFY it_event FROM wa_event INDEX sy-tabix.
CLEAR wa_event.
* DISPLAY RECORDS IN ALV GRID
CALL FUNCTION 'REUSE_ALV_GRID_DISPLAY'
EXPORTING
* I_INTERFACE_CHECK = ' '
* I_BYPASSING_BUFFER = ' '
* I_BUFFER_ACTIVE = ' '
i_callback_program = rep_id
* i_callback_pf_status_set = 'PF'
i_callback_user_command = 'COMMAND'
i_callback_top_of_page = 'TOP'
* I_CALLBACK_HTML_TOP_OF_PAGE = ' '
* I_CALLBACK_HTML_END_OF_LIST = ' '
* I_STRUCTURE_NAME =
* I_BACKGROUND_ID = ' '
i_grid_title = wa_title
* I_GRID_SETTINGS =
is_layout = wa_layout
it_fieldcat = it_field
it_excluding = it_exclude
* IT_SPECIAL_GROUPS =
it_sort = it_sort
* IT_FILTER =
* IS_SEL_HIDE =
* I_DEFAULT = 'X'
i_save = 'A'
is_variant = wa_variant
it_events = it_event
* IT_EVENT_EXIT =
* IS_PRINT =
* IS_REPREP_ID =
* I_SCREEN_START_COLUMN = 0
* I_SCREEN_START_LINE = 0
* I_SCREEN_END_COLUMN = 0
* I_SCREEN_END_LINE = 0
* I_HTML_HEIGHT_TOP = 0
* I_HTML_HEIGHT_END = 0
* IT_ALV_GRAPHICS =
* IT_HYPERLINK =
* IT_ADD_FIELDCAT =
* IT_EXCEPT_QINFO =
* IR_SALV_FULLSCREEN_ADAPTER =
* IMPORTING
* E_EXIT_CAUSED_BY_CALLER =
* ES_EXIT_CAUSED_BY_USER =
TABLES
t_outtab = it_ekpo
EXCEPTIONS
program_error = 1
OTHERS = 2.
IF sy-subrc <> 0.
ENDIF.
*& Form top
* TO WRITE THE HEADER
FORM top.
REFRESH it_top.
wa_top-typ = 'S'.
wa_top-key = text-001.
wa_top-info = rep_id.
APPEND wa_top TO it_top.
CLEAR wa_top.
CALL FUNCTION 'REUSE_ALV_COMMENTARY_WRITE'
EXPORTING
it_list_commentary = it_top
* I_LOGO =
* I_END_OF_LIST_GRID =
* I_ALV_FORM =
ENDFORM. "top
*& Form end
* TO WRITE THE FOOTER
FORM end.
REFRESH it_end.
wa_end-typ = 'S'.
wa_end-key = text-001.
wa_end-info = rep_id.
APPEND wa_end TO it_end.
CLEAR wa_end.
CALL FUNCTION 'REUSE_ALV_COMMENTARY_WRITE'
EXPORTING
it_list_commentary = it_end
* I_LOGO =
* I_END_OF_LIST_GRID =
* I_ALV_FORM =
ENDFORM. "end
*& Form pf
* FOR PF-STATUS WITH USER DEFINED BUTTONS
* -->RT_EXTAB text
FORM pf USING rt_extab TYPE slis_t_extab.
SET PF-STATUS 'ZTG_PF_ALV'.
ENDFORM. "pf
*& Form command
* TO HANDLE USER ACTIONS AGAINST PF-STATUS
* -->UCOMM text
* -->SELFIELD text
FORM command USING ucomm LIKE sy-ucomm selfield TYPE slis_selfield.
DATA : ok_code TYPE sy-ucomm.
ok_code = ucomm.
CASE ok_code.
WHEN 'T_DOWN'.
CALL FUNCTION 'POPUP_TO_INFORM'
EXPORTING
titel = 'HELLO'
txt1 = 'USER COMMAND'
txt2 = 'TOTAL DOWN'.
WHEN 'DOWN'.
CALL FUNCTION 'POPUP_TO_INFORM'
EXPORTING
titel = 'HELLO'
txt1 = 'USER COMMAND'
txt2 = 'DOWN'.
WHEN 'UP'.
CALL FUNCTION 'POPUP_TO_INFORM'
EXPORTING
titel = 'HELLO'
txt1 = 'USER COMMAND'
txt2 = 'UP'.
WHEN 'T_UP'.
CALL FUNCTION 'POPUP_TO_INFORM'
EXPORTING
titel = 'HELLO'
txt1 = 'USER COMMAND'
txt2 = 'TOTAL UP'.
ENDCASE.
ENDFORM. "command
Hope this helps you.
Thanks & Regards,
Tarun Gambhir -
Multiple Approval Leave Request in Fiori
Hello,
Do we have multiple approval Leave request in Fiori and how do we enable it.
In EHP7 portal we have multiple approval and Fiori app should be in synch with the same. However, I could not find any option to enable the multi-level approval for leave request in Fiori.
Regards,
DivyaHi Divya,
Are you talking about, multiple levels of approval in approve leave requests app in Fiori.
This totally depends on the workflow template you are using. If the workflow you use in your portal handles multiple approval, your approve leave request should allow the same too. Make sure you are getting the workitems in your sap inbox.
Let us know if this is not what you are asking for.
Regards,
Tejas -
Data transfer of Selected sets (QS51) using Function modules
Hi All,
I am doing data migration of Selected sets (TCODE QS51) using function module. I have tried using BDC recording but it is not working in background.In foreground it is giving information error on second screen as field RQSKT-AUSWAHLMGE is not present on screen 1000.. In foreground I am pressing enter after this error its working fine but in background the execution stops there. So I am trying function modules QPAM_SELSET_CODE_CREATE and QPAM_SELECTED_SET_CREATE
The fields in template I have are KATALOGART(Catalog), WERKS(Plant),AUSWAHLMGE(Selected set) ,KTX01(short text), STATUS(status),CODEGRUPPE(code group), CODE (code), KURZTEXT (short text for codegroup),BEWERTUNG(Valuation code), FEHLKLASSE(Defect class)
QPAM_SELSET_CODE_CREATE contains fields KATALOGART, WERKS,AUSWAHLMGE ,CODEGRUPPE,CODE which I need and While stand alone testing of this function module I am geting error as follows with the data filled :
Runtime: 6.496 Microseconds
Exception WRONG_KEY
Message ID: QS Message number: 299
Message:
No entries were found in catalog 1
MAN WERK K AUSWAHLM CODEGRUP CODE
300 WI10 1 DDTEST THREADS 1
QPAM_SELECTED_SET_CREATE contains KATALOGART , WERKS,AUSWAHLMGE , KTX01 which I need and it requires Language key fiels KSP01. I specified it it executes successfully but in transaction it is not there. some FMs contain some fields and not all fields so I want to know which one to use ? Can anyone give me sample code how to use these FMs?Note 381286 - Code grps + selectd sets:Transport request requestd
Note 592418 - Composite SAP note: Transport of code groups and codes
But I do not recommend a modification because the system does not generate request for that in the production system.
This means you can maintain catalog directly without transport in the production system.
Only development or test system ask you a request number.
Regards
Luke -
ALV Tree using Function Modules
Hi,
I want a simple example of ALV Tree using Function Modules which can display multiple Columns in the Hierarchically arranged fashion along with nodes & icons.
Also should be able to handle the events.
Thanks in Advance..Hi Ramesh,
Here is a example of alv tree
*& Report BCALV_TREE_DEMO *
report bcalv_tree_demo.
class cl_gui_column_tree definition load.
class cl_gui_cfw definition load.
data tree1 type ref to cl_gui_alv_tree.
data mr_toolbar type ref to cl_gui_toolbar.
include <icon>.
include bcalv_toolbar_event_receiver.
include bcalv_tree_event_receiver.
data: toolbar_event_receiver type ref to lcl_toolbar_event_receiver.
data: gt_sflight type sflight occurs 0, "Output-Table
gt_fieldcatalog type lvc_t_fcat, "Fieldcatalog
ok_code like sy-ucomm. "OK-Code
start-of-selection.
end-of-selection.
call screen 100.
*& Module PBO OUTPUT
* process before output
module pbo output.
set pf-status 'MAIN100'.
if tree1 is initial.
perform init_tree.
endif.
call method cl_gui_cfw=>flush.
endmodule. " PBO OUTPUT
*& Module PAI INPUT
* process after input
module pai input.
case ok_code.
when 'EXIT' or 'BACK' or 'CANC'.
perform exit_program.
when others.
call method cl_gui_cfw=>dispatch.
endcase.
clear ok_code.
call method cl_gui_cfw=>flush.
endmodule. " PAI INPUT
*& Form build_fieldcatalog
* build fieldcatalog for structure sflight
form build_fieldcatalog.
* get fieldcatalog
call function 'LVC_FIELDCATALOG_MERGE'
exporting
i_structure_name = 'SFLIGHT'
changing
ct_fieldcat = gt_fieldcatalog.
* change fieldcatalog
data: ls_fieldcatalog type lvc_s_fcat.
loop at gt_fieldcatalog into ls_fieldcatalog.
case ls_fieldcatalog-fieldname.
when 'CARRID' or 'CONNID' or 'FLDATE'.
ls_fieldcatalog-no_out = 'X'.
ls_fieldcatalog-key = ''.
when 'PRICE' or 'SEATSOCC' or 'SEATSMAX' or 'PAYMENTSUM'.
ls_fieldcatalog-do_sum = 'X'.
endcase.
modify gt_fieldcatalog from ls_fieldcatalog.
endloop.
endform. " build_fieldcatalog
*& Form build_hierarchy_header
* build hierarchy-header-information
* -->P_L_HIERARCHY_HEADER strucxture for hierarchy-header
form build_hierarchy_header changing
p_hierarchy_header type treev_hhdr.
p_hierarchy_header-heading = 'Hierarchy Header'. "#EC NOTEXT
p_hierarchy_header-tooltip =
'This is the Hierarchy Header !'. "#EC NOTEXT
p_hierarchy_header-width = 30.
p_hierarchy_header-width_pix = ''.
endform. " build_hierarchy_header
*& Form exit_program
* free object and leave program
form exit_program.
call method tree1->free.
leave program.
endform. " exit_program
*& Form build_header
* build table for html_header
* --> p1 text
* <-- p2 text
form build_comment using
pt_list_commentary type slis_t_listheader
p_logo type sdydo_value.
data: ls_line type slis_listheader.
* LIST HEADING LINE: TYPE H
clear ls_line.
ls_line-typ = 'H'.
* LS_LINE-KEY: NOT USED FOR THIS TYPE
ls_line-info = 'ALV-tree-demo: flight-overview'. "#EC NOTEXT
append ls_line to pt_list_commentary.
* STATUS LINE: TYPE S
clear ls_line.
ls_line-typ = 'S'.
ls_line-key = 'valid until'. "#EC NOTEXT
ls_line-info = 'January 29 1999'. "#EC NOTEXT
append ls_line to pt_list_commentary.
ls_line-key = 'time'.
ls_line-info = '2.00 pm'. "#EC NOTEXT
append ls_line to pt_list_commentary.
* ACTION LINE: TYPE A
clear ls_line.
ls_line-typ = 'A'.
* LS_LINE-KEY: NOT USED FOR THIS TYPE
ls_line-info = 'actual data'. "#EC NOTEXT
append ls_line to pt_list_commentary.
p_logo = 'ENJOYSAP_LOGO'.
endform.
*& Form create_hierarchy
* text
* --> p1 text
* <-- p2 text
form create_hierarchy.
data: ls_sflight type sflight,
lt_sflight type sflight occurs 0.
* get data
select * from sflight into table lt_sflight
UP TO 200 ROWS .
sort lt_sflight by carrid connid fldate.
* add data to tree
data: l_carrid_key type lvc_nkey,
l_connid_key type lvc_nkey,
l_last_key type lvc_nkey.
loop at lt_sflight into ls_sflight.
on change of ls_sflight-carrid.
perform add_carrid_line using ls_sflight
changing l_carrid_key.
endon.
on change of ls_sflight-connid.
perform add_connid_line using ls_sflight
l_carrid_key
changing l_connid_key.
endon.
perform add_complete_line using ls_sflight
l_connid_key
changing l_last_key.
endloop.
* calculate totals
call method tree1->update_calculations.
* this method must be called to send the data to the frontend
call method tree1->frontend_update.
endform. " create_hierarchy
*& Form add_carrid_line
* add hierarchy-level 1 to tree
* -->P_LS_SFLIGHT sflight
* -->P_RELEATKEY relatkey
* <-->p_node_key new node-key
form add_carrid_line using ps_sflight type sflight
p_relat_key type lvc_nkey
changing p_node_key type lvc_nkey.
data: l_node_text type lvc_value,
ls_sflight type sflight.
* set item-layout
data: lt_item_layout type lvc_t_layi,
ls_item_layout type lvc_s_layi.
ls_item_layout-t_image = '@3P@'.
ls_item_layout-fieldname = tree1->c_hierarchy_column_name.
ls_item_layout-style =
cl_gui_column_tree=>style_intensifd_critical.
append ls_item_layout to lt_item_layout.
* add node
l_node_text = ps_sflight-carrid.
call method tree1->add_node
exporting
i_relat_node_key = p_relat_key
i_relationship = cl_gui_column_tree=>relat_last_child
i_node_text = l_node_text
is_outtab_line = ls_sflight
it_item_layout = lt_item_layout
importing
e_new_node_key = p_node_key.
endform. " add_carrid_line
*& Form add_connid_line
* add hierarchy-level 2 to tree
* -->P_LS_SFLIGHT sflight
* -->P_RELEATKEY relatkey
* <-->p_node_key new node-key
form add_connid_line using ps_sflight type sflight
p_relat_key type lvc_nkey
changing p_node_key type lvc_nkey.
data: l_node_text type lvc_value,
ls_sflight type sflight.
* set item-layout
data: lt_item_layout type lvc_t_layi,
ls_item_layout type lvc_s_layi.
ls_item_layout-t_image = '@3Y@'.
ls_item_layout-style =
cl_gui_column_tree=>style_intensified.
ls_item_layout-fieldname = tree1->c_hierarchy_column_name.
append ls_item_layout to lt_item_layout.
* add node
l_node_text = ps_sflight-connid.
call method tree1->add_node
exporting
i_relat_node_key = p_relat_key
i_relationship = cl_gui_column_tree=>relat_last_child
i_node_text = l_node_text
is_outtab_line = ls_sflight
it_item_layout = lt_item_layout
importing
e_new_node_key = p_node_key.
endform. " add_connid_line
*& Form add_cmplete_line
* add hierarchy-level 3 to tree
* -->P_LS_SFLIGHT sflight
* -->P_RELEATKEY relatkey
* <-->p_node_key new node-key
form add_complete_line using ps_sflight type sflight
p_relat_key type lvc_nkey
changing p_node_key type lvc_nkey.
data: l_node_text type lvc_value.
* set item-layout
data: lt_item_layout type lvc_t_layi,
ls_item_layout type lvc_s_layi.
ls_item_layout-fieldname = tree1->c_hierarchy_column_name.
ls_item_layout-class = cl_gui_column_tree=>item_class_checkbox.
ls_item_layout-editable = 'X'.
append ls_item_layout to lt_item_layout.
l_node_text = ps_sflight-fldate.
call method tree1->add_node
exporting
i_relat_node_key = p_relat_key
i_relationship = cl_gui_column_tree=>relat_last_child
is_outtab_line = ps_sflight
i_node_text = l_node_text
it_item_layout = lt_item_layout
importing
e_new_node_key = p_node_key.
endform. " add_complete_line
*& Form register_events
* text
* --> p1 text
* <-- p2 text
form register_events.
* define the events which will be passed to the backend
data: lt_events type cntl_simple_events,
l_event type cntl_simple_event.
* define the events which will be passed to the backend
l_event-eventid = cl_gui_column_tree=>eventid_expand_no_children.
append l_event to lt_events.
l_event-eventid = cl_gui_column_tree=>eventid_checkbox_change.
append l_event to lt_events.
l_event-eventid = cl_gui_column_tree=>eventid_header_context_men_req.
append l_event to lt_events.
l_event-eventid = cl_gui_column_tree=>eventid_node_context_menu_req.
append l_event to lt_events.
l_event-eventid = cl_gui_column_tree=>eventid_item_context_menu_req.
append l_event to lt_events.
l_event-eventid = cl_gui_column_tree=>eventid_header_click.
append L_EVENT to lt_events.
l_event-eventid = cl_gui_column_tree=>eventid_item_keypress.
append L_EVENT to lt_events.
call method tree1->set_registered_events
exporting
events = lt_events
exceptions
cntl_error = 1
cntl_system_error = 2
illegal_event_combination = 3.
if sy-subrc <> 0.
message x208(00) with 'ERROR'. "#EC NOTEXT
endif.
* set Handler
data: l_event_receiver type ref to lcl_tree_event_receiver.
create object l_event_receiver.
set handler l_event_receiver->handle_node_ctmenu_request
for tree1.
set handler l_event_receiver->handle_node_ctmenu_selected
for tree1.
set handler l_event_receiver->handle_item_ctmenu_request
for tree1.
set handler l_event_receiver->handle_item_ctmenu_selected
for tree1.
endform. " register_events
*& Form change_toolbar
* text
* --> p1 text
* <-- p2 text
form change_toolbar.
* get toolbar control
call method tree1->get_toolbar_object
importing
er_toolbar = mr_toolbar.
check not mr_toolbar is initial.
* add seperator to toolbar
call method mr_toolbar->add_button
exporting
fcode = ''
icon = ''
butn_type = cntb_btype_sep
text = ''
quickinfo = 'This is a Seperator'. "#EC NOTEXT
* add Standard Button to toolbar (for Delete Subtree)
call method mr_toolbar->add_button
exporting
fcode = 'DELETE'
icon = '@18@'
butn_type = cntb_btype_button
text = ''
quickinfo = 'Delete subtree'. "#EC NOTEXT
* add Dropdown Button to toolbar (for Insert Line)
call method mr_toolbar->add_button
exporting
fcode = 'INSERT_LC'
icon = '@17@'
butn_type = cntb_btype_dropdown
text = ''
quickinfo = 'Insert Line'. "#EC NOTEXT
* set event-handler for toolbar-control
create object toolbar_event_receiver.
set handler toolbar_event_receiver->on_function_selected
for mr_toolbar.
set handler toolbar_event_receiver->on_toolbar_dropdown
for mr_toolbar.
endform. " change_toolbar
*& Form init_tree
* text
* --> p1 text
* <-- p2 text
FORM init_tree.
* create fieldcatalog for structure sflight
perform build_fieldcatalog.
* create container for alv-tree
data: l_tree_container_name(30) type c,
l_custom_container type ref to cl_gui_custom_container.
l_tree_container_name = 'TREE1'.
if sy-batch is initial.
create object l_custom_container
exporting
container_name = l_tree_container_name
exceptions
cntl_error = 1
cntl_system_error = 2
create_error = 3
lifetime_error = 4
lifetime_dynpro_dynpro_link = 5.
if sy-subrc <> 0.
message x208(00) with 'ERROR'. "#EC NOTEXT
endif.
endif.
* create tree control
create object tree1
exporting
parent = l_custom_container
node_selection_mode = cl_gui_column_tree=>node_sel_mode_single
item_selection = 'X'
no_html_header = ''
no_toolbar = ''
exceptions
cntl_error = 1
cntl_system_error = 2
create_error = 3
lifetime_error = 4
illegal_node_selection_mode = 5
failed = 6
illegal_column_name = 7.
if sy-subrc <> 0.
message x208(00) with 'ERROR'. "#EC NOTEXT
endif.
* create Hierarchy-header
data l_hierarchy_header type treev_hhdr.
perform build_hierarchy_header changing l_hierarchy_header.
* create info-table for html-header
data: lt_list_commentary type slis_t_listheader,
l_logo type sdydo_value.
perform build_comment using
lt_list_commentary
l_logo.
* repid for saving variants
data: ls_variant type disvariant.
ls_variant-report = sy-repid.
* create emty tree-control
call method tree1->set_table_for_first_display
exporting
is_hierarchy_header = l_hierarchy_header
it_list_commentary = lt_list_commentary
i_logo = l_logo
i_background_id = 'ALV_BACKGROUND'
i_save = 'A'
is_variant = ls_variant
changing
it_outtab = gt_sflight "table must be emty !!
it_fieldcatalog = gt_fieldcatalog.
* create hierarchy
perform create_hierarchy.
* add own functioncodes to the toolbar
perform change_toolbar.
* register events
perform register_events.
* adjust column_width
call method tree1->COLUMN_OPTIMIZE.
ENDFORM. " init_tree
regards,
venu. -
Delta Extraction Using Function Module ( Customization )
Dear Experts,
I want a sample code for Delta Extraction using Function Module ( If it is customized already working code very helpful ), I have already created Function Module but Full update is happening. If I give delta update again it is retrieving all records. It is very urgent, if you have please send me to the following mail ID.
[email protected]
Best Regards,
SGK.Hi SGK,
I've done this for a delta based on a timestamp and it's actually pretty easy. The basic steps are:
1) Create an extract structure in SE11. Make sure the structure has a date or timestamp field in it that you can use for delta. You'll need to include the field twice if you also want to extract it to BW/BI since once it's chosen as the delta field then it will be hidden in the interface.
2) Create the extractor function module in SE37. You can use RSAX_BIW_GET_DATA_SIMPLE as a template. Make sure your logic restricts the data it retrieves according to the selections that are passed in I_T_SELECT, including restrictions on the delta field.
3) Create a generic DataSource in RSO2. Click Extraction by FM then fill in your extract structure and function module. Click Generic Delta and pick your delta field and the appropriate radio button (time stamp or calendar day). If your delta field is a timestamp field then be sure to set the upper and lower safety limits to -86400 and 86400 respectively. This might not be necessary on your version of SAPI but on mine there is a bug where it doesn't translate between system time and UTC (GMT) correctly so this was necessary.
You don't need to program any special delta handling logic in your function module as long as you restrict the data you retrieve based on the delta field (I_T_SELECT). This is because the SAPI takes care of catching the init, delta and repeat requests, translating them to the appropriate delta field values, and then passing them to your function module as if it was a full extraction for a specific date or timestamp range.
Hope this helps!
Jason
Maybe you are looking for
-
Well, I've had my new iMac for around a month now and it's great and today I was working in Photoshop and tried to wipe what I thought was dust off my screen, then I realised it was beneath the glass and a dark dead pixel! NOOOOOO!!!! Because it's a
-
I have to alter an existing system (using WebLogic 5.1 Server) to use certificates over SSL. The CA provides these certificates in PKCS#12 format (.pfx files) and I wondered if any-one knew of a method to get them into the PEM or DER format required
-
CM 1415 HP Connect says System Error try again?
Whne printing to my HP CM1415 printer via my HP e-mail, the printout never prints. However if I look at HP Connect, I see that the printout states Internal System error, try again. Any ideas what might be going on here?
-
User Exit for employee creation
Hi, I want to know the user exit which is called whenever the employee is created and employee number is generated. I found one user exit as below: EXIT_SAPMP50A_001 Is it correct? Please advise. Regards Manish Jaiswal
-
Hi, I'm facing an issue related to the variable search help. I have a query which has been recently migrated to 7.0. When I open the query on Analyzer and look for values in a variable it is throwing me the relevent values for that particular variabl