BPS planning folder; Scroll to top after execution of planning function
Hi All,
After execution of a planning function, or after saving data in a planning folder, the layout jumps back to the top and displays the first row, even if the user was positioned on another row.
I know BPS does this because it recalculates the data and tries to display it.
However, it is not very user friendly.
Did anyone ever solve this ?
How do you remain positionned on the line you are working on after saving or execution a BPS planning function?
Thanks in advance for your answer,
Points will be rewarded to solutions.
Filip Ledoux
<FONT FACE = "Tahoma", Font Color = "Blue">
Hi<br>
There are some APIs which BPS uses internally to save data. You can make a Planning Function of Type EXIT using function moule of your own calling API_SEMBPS_POST (to save data). <br><br>
You can call this EXIT Function as a step next to your copy function in your Global Planning Sequence.<br>
Please refer to Note 422998 - SEM-BPS processing large data volumes if you need further details for implementing this solution.
<br><br>
Hope it helps.<br>
Cheers Abhijit</FONT><FONT FACE = "Verdana", Font Color = "Red">
It's a good habit to reward someone with points in SDN if you think his/her
response was helpful to you
</FONT>
Similar Messages
-
How to write data from planning folder into a planning cube in BPS
Hi All,
I have an issue in writing data from planning folder to planning cube.
I updated the excel sheet in planning folder in UPSPL tcode.
After clicking on save button in the excel sheet the data did not get updated into the cube.
I set the real time cube to planning mode.
Please let me know if there are any settings to save the data to cube or how can it be done.
Thanks in advance.
Regards,
Lavanya.Hi Lavanya,
What do you mean by "the data did not get updated into the cube" ?
Don't you find a yellow request in the cube administration transaction ? What happened if you set it to green ?
Regards,
Fred -
Web Interface builder - Not displaying planning folder after transporting
I created an web-enabled planning folder and transported it to the quality system.
In the development system works perfectly (variables, layouts, links, user-exits, etc).
After transporting it to the quality system when I run this web planning folder the page doesn't load and displays with an empty white web page.
I tried to re-generate it in the quality system, but I'm having the same problem. I haven't recieved any error message.
Development system:
SAP_BW 350 0019 SAPKW35019 Business Information Warehouse
SEM-BW 400 0012 SAPKGS4012 SEM-BW 400 : Add-On Upgrade Request
BI_CONT 353 0007 SAPKIBIFP7 Business Intelligence Content
Quality system:
SAP_BW 350 0019 SAPKW35019 Business Information Warehouse
BI_CONT 353 0007 SAPKIBIFP7 Business Intelligence Content
SEM-BW 400 0012 SAPKGS4012 SEM-BW 400 : Add-On Upgrade RequestThanks for your post.
I tried re-transporting and re-generate it again and I'm still having the same problem.
Have you heard of a note or something for a similar problem?
The only thing I recall is that this client was using SEM 3.5 before and upgraded to SEM 4.0 recently. -
Problem with Authorization for BW BPS planning Folder
Hi an having a problem with providing authorization for a planning folder
i am getting the following error when i test it with test user
Error while calling up RFC
Message no. UPC202
Diagnosis
You have selected a function, to execute this the system must set up an RFC connection to another SAP System. However, setting up this connection was not successful. The following internal error message was generated:
"You do not have authorization for InfoCube ZT_MR_T "
Procedure
Inform the system administrator.
if any one has faced the same issue let me know.
Regards,
AbrahamHI ,
I Checked it out we dont have that cube in our system.
Regards,
Abraham -
Planning Function giving error 'not initialise' in BPS Planning folder
Hi
Have created the std copy planning function and have included in the folder. Its giving the error the function is not initialised. What do I need to do to remove this error. Any suggestion most welcome.
Kind Regards,
SarahHi Sarah,
Can you be please feed in some more information on the function you have created. What is the parameter group you have created. Is the error coming while checking the planning folder or before that. -
Parameter Exit Function in Planning Folder
Hi all,
I created the planning function in SEM BPS using exit function. And then I added the parameter exit function 0VERSION to this function. After that, I tried to put this function in the planning folder.
Does anybody know how to put the parameter exit function to the planning folder?
Because I need the user to fill the value of the 0VERSION before they run the function.
I assume this should work as the selection screen.
Currently, Every time I run this function, there is no selection screen or the place that I could fill the value for this field. So, the system always receives no value for this field.
Or Maybe you have another approach to get the user's value without restrict the data before run the exit function.
Thanks a lot for your help,
-Martin Darmawi-This behaviour is quite normal. You should use different approach.
Parameters in exit functions can be filled in parameter group only and only with fixed values.
You should create a planning variable, put it to the folder and then read value of this variable in your exit function with 'API_SEMBPS_VARIABLE_GETDETAIL' for example. -
Selection Screen getting refreshed after execution..
Hello All,
I have a strange problem..
My selection-screen values are getting refreshed after execution and come back to selection screen. I am using normal ALV Fm to display the values. Can some suggest a possible reason?
Many thanks,
V NairNo .. I have checked it..Selection variables are not getting refreshed.
My Code Below
REPORT yhr_icm_exception_report.
Type Pool declarations
TYPE-POOLS: slis, "For AlV
sdydo, "Dynamic Documents
icon. "For ICON
Table declarations
TABLES : yhr_icm_exp_log, "ICM Exceptions Log
yhr_icm_exp_hist. "ICM Exception History
Include Constants
INCLUDE yhr_icm_constants . "Program to hold constants
Types declarations
*-To hold return field
TYPES: BEGIN OF ty_returntab.
INCLUDE STRUCTURE ddshretval. "Interface Structure
TYPES: END OF ty_returntab.
*-To hold deletion records
TYPES : BEGIN OF ty_icm_del,
tab_name TYPE yhr_tabname, "Internal table name
objid TYPE hrobjid, "Object ID
begda TYPE begda, "Begin Date
otype TYPE otype, "Object Type
END OF ty_icm_del.
*-Message details to be displayed
TYPES : BEGIN OF ty_message,
msgnr TYPE msgno, "System message number
text TYPE yhr_icm_exp_log-msgxx, "Message Text
END OF ty_message.
*-To hold exception log
TYPES : BEGIN OF ty_icm_exp_log,
msgno TYPE msgnr, "Message number
run_id TYPE yhr_icm_erun_id, "Exception Run ID
delta_id TYPE yhr_icm_run_id, "Run ID
record_type TYPE yhr_icm_exp_type, "Record Type
otype TYPE yhr_otype, "Object Type
objid TYPE hrobjid, "Object ID
begda TYPE begda, "Begin Date
msgxx TYPE msgxx, "Message
status TYPE yhr_icm_icon, "Status
delta_relevance TYPE yhr_delta_rel, "Delta Relevance
END OF ty_icm_exp_log.
*-To hold email attachment
TYPES: BEGIN OF ty_attach,
text(500) TYPE c, "Text
END OF ty_attach.
*To hold object type & text
TYPES :BEGIN OF ty_objid_text,
objid TYPE objid, "Object ID
text TYPE emnam, "Object Text
END OF ty_objid_text.
*-To hold counter values - Exp , Del & historical
TYPES :BEGIN OF ty_count,
exp(10) TYPE c, "Exceptions
del(10) TYPE c, "Deletions
hist(10) TYPE c, "Historical Deletions
END OF ty_count.
*- To hold lock details
TYPES : BEGIN OF ty_lock,
live TYPE c, "Live Callidus Program
genr TYPE c, "Generation Program
exp TYPE c, "Exception Program
END OF ty_lock.
Range Declarations
RANGES :
gr_objid FOR hrp1001-objid, "Range for Object ID
gr_pernr FOR pa0000-pernr. "Range for Employee number
Internal Table Declarations
DATA : gt_records TYPE STANDARD TABLE OF yhr_icm_exp_report,
gt_objid_text TYPE STANDARD TABLE OF ty_objid_text,
gt_icm_exp_log TYPE STANDARD TABLE OF ty_icm_exp_log,
gt_returntab TYPE STANDARD TABLE OF ty_returntab,
gt_t777o TYPE STANDARD TABLE OF t777o,
gt_diff_tab TYPE STANDARD TABLE OF yhr_icm_diff,
gt_del_tab TYPE STANDARD TABLE OF ty_icm_del, "#EC *
gt_iattach TYPE STANDARD TABLE OF ty_attach,
gt_message TYPE STANDARD TABLE OF ty_message,
gt_fieldcat TYPE slis_t_fieldcat_alv,
gt_heading TYPE slis_t_listheader,
gt_exceptions TYPE yhr_icm_exp_list_t,
gt_events TYPE slis_t_event.
Structure Declarations
DATA : gs_objid_text TYPE ty_objid_text,
gs_icm_exp_log TYPE ty_icm_exp_log,
gs_records TYPE yhr_icm_exp_report,
gs_exceptions TYPE yhr_icm_exp_list,
gs_count TYPE ty_count,
gs_fieldcat TYPE slis_fieldcat_alv, "#EC *
gs_returntab TYPE ty_returntab,
gs_icm_exp_hist TYPE yhr_icm_exp_hist,
gs_iattach TYPE ty_attach,
gs_message TYPE ty_message, "#EC *
gs_layout TYPE slis_layout_alv,
gs_t777o TYPE t777o,
gs_lock TYPE ty_lock.
Constant declarations
CONSTANTS:
c_yes TYPE string VALUE 'YES',
c_no TYPE string VALUE 'NO',
c_true TYPE c VALUE 'X',
c_deletions TYPE c VALUE 'D',
c_delta_no TYPE c VALUE 'N',
c_delta_yes TYPE c VALUE 'Y',
c_historical TYPE c VALUE 'H',
c_a TYPE c VALUE 'A',
c_error TYPE c VALUE 'E',
c_equal(2) TYPE c VALUE 'EQ',
c_participants TYPE c VALUE 'P',
c_include TYPE c VALUE 'I',
c_position TYPE c VALUE 'S',
c_organization TYPE c VALUE 'O',
c_runlock TYPE string VALUE 'RUN_LOCK',
c_parameter TYPE string VALUE 'P',
c_selfield TYPE string VALUE 'SEL_FIELD' ,
c_type TYPE string VALUE 'TYPE',
c_topofpage TYPE string VALUE 'TOP_OF_PAGE',
c_rectype TYPE string VALUE ' S_RECTYPE',
c_objectkey TYPE string VALUE 'OBJECTKEY1',
c_icon_green TYPE string VALUE '@08@',
c_icon_red TYPE string VALUE '@0A@',
c_icon_amber TYPE string VALUE '@09@',
c_green TYPE string VALUE 'GREEN',
c_amber TYPE string VALUE 'AMBER',
c_red TYPE string VALUE 'RED',
c_tabname TYPE slis_tabname VALUE 'GT_RECORDS',
c_structname TYPE dd02l-tabname VALUE 'YHR_ICM_EXP_REPORT' ,
c_siwb_wallpaper TYPE sdydo_key VALUE 'SIWB_WALLPAPER',
c_user_command TYPE slis_formname VALUE 'F01_ALV_EVENT_USER_COMMAND',
c_genname TYPE trdir-name VALUE 'YHR_ICM_GENERATE_EXCEPTIONS',
c_expname TYPE trdir-name VALUE 'YHR_ICM_EXCEPTION_REPORT',
c_pf_status TYPE slis_formname VALUE 'SET_PF_STATUS',
c_msg_class TYPE string VALUE 'YHR_ICM'.
Global Variable Declarations
DATA: gv_email_error TYPE c,
gv_email_sent TYPE c,
gv_exit TYPE c.
Selection Screen - Block I
SELECTION-SCREEN: BEGIN OF BLOCK b3 WITH FRAME TITLE text-s07.
SELECT-OPTIONS:
*- Run ID
s_run_id FOR yhr_icm_exp_hist-run_id,
*- Exception Type
s_rectyp FOR yhr_icm_exp_log-record_type NO INTERVALS,
*- Object Type
s_otype FOR yhr_icm_exp_log-otype NO INTERVALS,
*- Object ID
s_objid FOR yhr_icm_exp_log-objid NO INTERVALS,
*- Start Date
s_begda FOR yhr_icm_exp_log-begda,
*- Message number
s_msgno FOR yhr_icm_exp_log-msgno,
*- Message Text
s_msgxx FOR yhr_icm_exp_log-msgxx.
SELECT-OPTIONS:
*- Delta Relevance
s_relv FOR yhr_icm_exp_log-delta_relevance NO INTERVALS.
PARAMETERS:
*- Long Text
p_ltext AS CHECKBOX DEFAULT ' '.
SELECTION-SCREEN: END OF BLOCK b3.
Selection Screen - Block II
SELECTION-SCREEN: BEGIN OF BLOCK b2 WITH FRAME TITLE text-s08.
SELECTION-SCREEN BEGIN OF LINE.
SELECTION-SCREEN COMMENT 1(14) text-033.
*-Sucess
PARAMETERS:
p_stat_s AS CHECKBOX. "D11K917251
SELECTION-SCREEN COMMENT 24(14) text-034.
*-Warning
PARAMETERS:
p_stat_w AS CHECKBOX. "D11K917251
SELECTION-SCREEN COMMENT 48(15) text-035.
PARAMETERS:
*-Error
p_stat_e AS CHECKBOX . "D11K917251
SELECTION-SCREEN END OF LINE.
SELECTION-SCREEN: END OF BLOCK b2.
Selection Screen - Block III
SELECTION-SCREEN: BEGIN OF BLOCK b4 WITH FRAME TITLE text-s09.
*-Email Details
PARAMETERS:
p_email(128) TYPE c.
SELECTION-SCREEN: END OF BLOCK b4.
Selection Screen on value request.
AT SELECTION-SCREEN ON VALUE-REQUEST FOR s_msgno-low.
PERFORM f4_message.
Selection Screen Output.
AT SELECTION-SCREEN OUTPUT.
CHECK gt_returntab[] IS NOT INITIAL.
REFRESH s_msgno.
s_msgno-option = c_equal.
s_msgno-sign = c_include.
LOOP AT gt_returntab INTO gs_returntab.
s_msgno-low = gs_returntab-fieldval.
s_msgno-high = space.
APPEND s_msgno.
ENDLOOP.
At Selection Screen for Validation
AT SELECTION-SCREEN.
CLEAR gv_email_error.
*-Validate Object Type
PERFORM validate_objecttype.
*-Validate Exception ID
PERFORM fetch_exp_header.
*-Validate Exception Type
PERFORM validate_exptype.
*-Validate Message Number
PERFORM validate_msgno.
*-Validate Message Type
PERFORM validate_msgtype.
*-Validate Delta
PERFORM validate_delta.
*-Validate Email ID
PERFORM validate_email USING p_email
CHANGING gv_email_error.
IF gv_email_error IS NOT INITIAL.
MESSAGE e000(yhr_icm) WITH text-027.
ENDIF.
Initialization
INITIALIZATION.
Initialization
PERFORM initialization.
Start Of Selection
START-OF-SELECTION.
CLEAR : gv_email_error,
gv_email_sent,
gv_exit,
gs_lock.
Try locking the main program
PERFORM lock_generation_program.
CHECK gs_lock IS INITIAL.
*-Fetch the messages stored in table
PERFORM fetch_item_records.
Read object type text.
PERFORM read_text.
Get Object Text
PERFORM get_object_text.
*-Fetch the current SAP messages
PERFORM fetch_records.
*-Update Delta Flag
PERFORM update_delta_flag.
*-Compare messages in table & in SAP
PERFORM compare_message.
If receiver is not blank, try sending out mail
PERFORM send_mail USING p_email.
End Of Selection
END-OF-SELECTION.
IF gv_exit IS NOT INITIAL.
EXIT.
ENDIF.
*-Display ALV
PERFORM display_alv.
*-Build the event table for ALV display
PERFORM build_eventtab CHANGING gt_events[].
*-Fill the layout details
PERFORM layout_build .
Release all locks
PERFORM release_locks.
*-Finally call the grid display
PERFORM display_data.
*& Form set_pf_status
text
-->RT_EXTAB text
FORM set_pf_status USING rt_extab TYPE slis_t_extab. "#EC *
Set PF Status
SET PF-STATUS 'STANDARD'.
ENDFORM. "Set_pf_status
*& Form DISPLAY_ALV
text
--> p1 text
<-- p2 text
FORM display_alv .
*- Use FM to create field catalog
CALL FUNCTION 'REUSE_ALV_FIELDCATALOG_MERGE'
EXPORTING
i_program_name = sy-repid
i_internal_tabname = c_tabname
i_structure_name = c_structname
CHANGING
ct_fieldcat = gt_fieldcat
EXCEPTIONS
inconsistent_interface = 1
program_error = 1
OTHERS = 1.
IF sy-subrc = 1.
MESSAGE i000(yhr_icm) WITH text-001.
EXIT.
ENDIF.
*- Remove SEL Field Column as it is not required
DELETE gt_fieldcat WHERE fieldname = c_selfield.
*-If user chooses long text, activate icon
IF p_ltext IS INITIAL.
LOOP AT gt_fieldcat INTO gs_fieldcat WHERE fieldname = c_type.
gs_fieldcat-icon = c_true.
ENDLOOP.
ENDIF.
ENDFORM. " DISPLAY_ALV
*& Form BUILD_EVENTTAB
text
<--P_GT_EVENTS[] text
FORM build_eventtab CHANGING p_events TYPE slis_t_event.
DATA: ls_event TYPE slis_alv_event.
*-Get the list of event for alv
CALL FUNCTION 'REUSE_ALV_EVENTS_GET'
EXPORTING
i_list_type = 0
IMPORTING
et_events = p_events.
*-Add top of page event to event list
READ TABLE p_events
WITH KEY name = slis_ev_top_of_page
INTO ls_event.
IF sy-subrc = 0.
MOVE c_topofpage TO ls_event-form.
APPEND ls_event TO p_events.
ENDIF.
ENDFORM. " BUILD_EVENTTAB
*& Form LAYOUT_BUILD
text
--> p1 text
<-- p2 text
FORM layout_build .
gs_layout-zebra = c_true.
gs_layout-colwidth_optimize = c_true.
gs_layout-detail_popup = c_true.
gs_layout-detail_initial_lines = c_true.
gs_layout-detail_titlebar = text-044.
gs_layout-box_fieldname = c_selfield.
ENDFORM. " LAYOUT_BUILD
*& Form DISPLAY_DATA
text
--> p1 text
<-- p2 text
FORM display_data .
*-Display ALV display
CALL FUNCTION 'REUSE_ALV_GRID_DISPLAY'
EXPORTING
i_callback_user_command = c_user_command
i_background_id = c_siwb_wallpaper
i_callback_program = sy-repid
i_callback_pf_status_set = c_pf_status
i_default = c_true
i_save = c_a
is_layout = gs_layout
it_fieldcat = gt_fieldcat
it_events = gt_events
TABLES
t_outtab = gt_records.
ENDFORM. " DISPLAY_DATA
*& Form FETCH_RECORDS
text
--> p1 text
<-- p2 text
FORM fetch_records .
REFRESH : gt_diff_tab,
gt_del_tab,
gr_pernr,
gt_exceptions.
CLEAR: gs_icm_exp_log.
*-Get Employee details
PERFORM get_person_data.
*-Get Position Details
PERFORM get_position_data.
*-Get Organization Details
PERFORM get_org_data.
*-Get Exception current SAP exception list.
PERFORM get_exception_list.
*-Add deletion records
PERFORM filter_deletions.
ENDFORM. " FETCH_RECORDS
*& Form top_of_page
text
FORM top_of_page. "#EC *
PERFORM build_comment USING gt_heading.
*-Display Use FM to display Top Of Page
CALL FUNCTION 'REUSE_ALV_COMMENTARY_WRITE'
EXPORTING
it_list_commentary = gt_heading[].
CLEAR gt_heading.
ENDFORM. "TOP_OF_PAGE
*& Form build_comment
text
-->P_HEADING text
FORM build_comment USING p_heading TYPE slis_t_listheader.
DATA: ls_hline TYPE slis_listheader,
lv_text(120) TYPE c.
*-Display report title
ls_hline-typ = c_historical.
WRITE text-006 TO lv_text.
ls_hline-info = lv_text.
APPEND ls_hline TO p_heading.
CLEAR ls_hline.
ls_hline-typ = c_s.
*-Remove leading & trailing spaces
CONDENSE : gs_count-del, gs_count-exp, gs_count-hist.
*-If the count is space then pass 0
IF gs_count-del = space.
gs_count-del = 0.
ENDIF.
IF gs_count-exp = space.
gs_count-exp = 0.
ENDIF.
IF gs_count-hist = space.
gs_count-hist = 0.
ENDIF.
IF gs_lock IS INITIAL.
*-Display Deletion, Exception, Historical Count
CONCATENATE text-037 gs_count-del
text-032 gs_count-exp
text-039 gs_count-hist
INTO ls_hline-info SEPARATED BY space.
ELSEIF gs_lock-live IS NOT INITIAL.
ls_hline-info = text-007.
ELSEIF gs_lock-genr IS NOT INITIAL.
ls_hline-info = text-008.
ELSEIF gs_lock-exp IS NOT INITIAL.
ls_hline-info = text-009.
ENDIF.
APPEND ls_hline TO p_heading.
CLEAR ls_hline.
ENDFORM. "BUILD_COMMENT
*& Form INITIALIZATION
text
--> p1 text
<-- p2 text
FORM initialization .
Read Previous run
SELECT MAX( run_id )
INTO s_run_id-low
FROM yhr_icm_exp_hist. "#EC *
s_run_id-option = c_equal.
s_run_id-sign = c_include.
APPEND s_run_id.
s_rectyp-option = c_equal.
s_rectyp-sign = c_include.
s_rectyp-low = c_error.
APPEND s_rectyp.
s_rectyp-low = c_deletions.
APPEND s_rectyp.
PERFORM restrict_selections.
*Get the message from Message Class YHR_ICM
SELECT msgnr
text
FROM t100
INTO TABLE gt_message
WHERE arbgb = c_msg_class AND
msgnr GT '000'. "#EC *
ENDFORM. " INITIALIZATION
*& Form F4_MESSAGE
text
<--P_P_MSGNO text
FORM f4_message.
F4 Help - Display all messages
CALL FUNCTION 'F4IF_INT_TABLE_VALUE_REQUEST'
EXPORTING
retfield = 'MSGNR'
dynpprog = sy-cprog
dynpnr = sy-dynnr
dynprofield = 'S_MSGNR'
window_title = text-045
value_org = c_s
multiple_choice = c_true
TABLES
value_tab = gt_message
return_tab = gt_returntab
EXCEPTIONS
parameter_error = 1
no_values_found = 2
OTHERS = 1.
IF sy-subrc = 1.
MESSAGE i000(yhr_icm) WITH text-002.
EXIT.
ELSEIF sy-subrc = 2.
MESSAGE i000(yhr_icm) WITH text-003.
EXIT.
ENDIF.
ENDFORM. " F4_MESSAGE
*& Form VALIDATE_OBJECTTYPE
text
--> p1 text
<-- p2 text
FORM validate_objecttype .
CHECK s_otype-low IS NOT INITIAL.
CONDENSE s_otype-low.
Validate object type to check whether user has entered only S, P or O
IF s_otype-low NE c_organization AND
s_otype-low NE c_position AND
s_otype-low NE c_participants .
MESSAGE e000(yhr_icm) WITH 'Enter either S(Position), P(Person) or O(Org Unit)'(021).
ENDIF.
ENDFORM. " VALIDATE_OBJECTTYPE
*& Form VALIDATE_OBJECTTYPE
FORM f01_alv_event_user_command USING r_ucomm LIKE sy-ucomm
rs_selfield TYPE slis_selfield."#EC *
DATA : lv_answer TYPE c,
lt_fields TYPE STANDARD TABLE OF sval,
ls_fields TYPE sval.
*-Get the row user has selected in ALV list
READ TABLE gt_records INTO gs_records INDEX rs_selfield-tabindex.
CASE r_ucomm.
WHEN 'DISP'.
CASE gs_records-otype.
WHEN 'S'.
SET PARAMETER ID 'POT' FIELD gs_records-otype.
SET PARAMETER ID 'PON' FIELD gs_records-objid.
CALL TRANSACTION 'PP01_DISP' AND SKIP FIRST SCREEN.
WHEN 'P'.
SET PARAMETER ID 'PER' FIELD gs_records-objid.
CALL TRANSACTION 'PA20' AND SKIP FIRST SCREEN.
WHEN 'O'.
SET PARAMETER ID 'POT' FIELD gs_records-otype.
SET PARAMETER ID 'PON' FIELD gs_records-objid.
CALL TRANSACTION 'PP01_DISP' AND SKIP FIRST SCREEN.
ENDCASE.
WHEN 'CHNG'.
CASE gs_records-otype.
WHEN 'S'.
SET PARAMETER ID 'POT' FIELD gs_records-otype.
SET PARAMETER ID 'PON' FIELD gs_records-objid.
CALL TRANSACTION 'PP01' AND SKIP FIRST SCREEN.
WHEN 'P'.
SET PARAMETER ID 'PER' FIELD gs_records-objid.
CALL TRANSACTION 'PA30' AND SKIP FIRST SCREEN.
WHEN 'O'.
SET PARAMETER ID 'POT' FIELD gs_records-otype.
SET PARAMETER ID 'PON' FIELD gs_records-objid.
CALL TRANSACTION 'PP01' AND SKIP FIRST SCREEN.
ENDCASE.
WHEN 'EMAIL'.
*- Check whether email has already been sent
IF gv_email_sent = c_true.
*- If yes, then display pop up to confirm for mailing again
CALL FUNCTION 'POPUP_TO_CONFIRM'
EXPORTING
text_question = text-041
text_button_1 = text-042
text_button_2 = text-043
IMPORTING
answer = lv_answer
EXCEPTIONS
text_not_found = 1
OTHERS = 1.
IF sy-subrc = 1.
MESSAGE i000(yhr_icm) WITH text-004.
EXIT.
ENDIF.
*- Continue only if user has selected Yes
CHECK lv_answer = '1'.
ENDIF.
*- Add Email Field & Table
ls_fields-tabname = 'SZA5_D0700'.
ls_fields-fieldname = 'SMTP_ADDR'.
APPEND ls_fields TO lt_fields.
*- Use FM to get new Email ID
CALL FUNCTION 'POPUP_GET_VALUES'
EXPORTING
popup_title = text-s09
start_column = '5'
start_row = '5'
TABLES
fields = lt_fields
EXCEPTIONS
error_in_fields = 1
OTHERS = 1.
IF sy-subrc = 1.
MESSAGE i000(yhr_icm) WITH text-004.
EXIT.
ENDIF.
*- Get the Email user has entered
READ TABLE lt_fields INTO ls_fields INDEX 1.
*- Validate Email ID
PERFORM validate_email USING ls_fields-value
CHANGING gv_email_error.
*- If the flag is not initial, indicates possible error
IF gv_email_error IS NOT INITIAL.
MESSAGE i000(yhr_icm) WITH text-027.
EXIT.
ELSE.
If no error, then try ending email
PERFORM send_mail USING ls_fields-value.
ENDIF.
WHEN 'REFRESH'.
*- Fetch the current SAP messages
PERFORM fetch_records.
*- Update Delta Flag
PERFORM update_delta_flag.
*- Compare messages in table & in SAP
PERFORM compare_message.
*- Refresh alv which is already displayed
rs_selfield-refresh = c_true.
ENDCASE.
ENDFORM. "F01_ALV_EVENT_USER_COMMAND
*& Form RESTRICT_SELECTIONS
text
--> p1 text
<-- p2 text
FORM restrict_selections .
TYPE-POOLS sscr.
STATICS: lt_restrict TYPE sscr_restrict,
lt_opt_list TYPE sscr_opt_list,
ls_*** TYPE sscr_***.
Restrict the wage type selection so the user can only enter
values with the 'EQ' clause.
CLEAR lt_opt_list.
MOVE c_objectkey TO lt_opt_list.
MOVE c_true TO: lt_opt_list-options-eq,
lt_opt_list-options-bt,
lt_opt_list-options-cp,
lt_opt_list-options-eq,
lt_opt_list-options-ge,
lt_opt_list-options-gt,
lt_opt_list-options-le,
lt_opt_list-options-lt.
APPEND lt_opt_list TO lt_restrict-opt_list_tab.
MOVE: c_s TO ls_***-kind,
c_rectype TO ls_***-name,
c_include TO ls_***-sg_main,
space TO ls_***-sg_addy,
c_objectkey TO ls_***-op_main.
APPEND ls_*** TO lt_restrict-***_tab.
*-Restrict the values OTYPE
MOVE 'S_OTYPE' TO ls_***-name.
APPEND ls_*** TO lt_restrict-***_tab.
*-Restrict the values OBJID
MOVE 'S_OBJID' TO ls_***-name.
APPEND ls_*** TO lt_restrict-***_tab.
*-Use FM to restrict the values
CALL FUNCTION 'SELECT_OPTIONS_RESTRICT'
EXPORTING
restriction = lt_restrict.
ENDFORM. " RESTRICT_SELECTIONS
*& Form GET_PERSON_DATA
text
--> p1 text
<-- p2 text
FORM get_person_data .
DATA : lt_del_tab TYPE STANDARD TABLE OF yhr_icm_diff.
SORT gt_icm_exp_log BY msgno .
gr_pernr-sign = c_include.
gr_pernr-option = c_equal.
LOOP AT gt_icm_exp_log INTO gs_icm_exp_log WHERE otype = c_participants AND
record_type = c_error.
*- Sort the table based on msgno and collect pernr
gr_pernr-sign = c_include.
gr_pernr-option = c_equal.
gr_pernr-low = gs_icm_exp_log-objid.
APPEND gr_pernr.
CLEAR gr_pernr-low.
AT END OF msgno. "#EC *
*- For the list of Pernr having same PERNR get the current exp details
IF gs_icm_exp_log-msgno = c_msg_100.
*- Export the pernr list to memory id & import in the below FM
*- Selection of records should be based on values exported from here
EXPORT gr_pernr TO MEMORY ID 'PERNR_0001'.
Get Org Assignment 0001 Data
CALL FUNCTION 'Y_HR_DIFF_PERNR_0001_DATA'
EXPORTING
period_begda = gs_icm_exp_hist-begda
period_endda = gs_icm_exp_hist-endda
refresh = space
UPDATE = space
TABLES
diff_tab = gt_diff_tab
del_tab = lt_del_tab.
ELSEIF gs_icm_exp_log-msgno = c_msg_101. "Y_HR_DIFF_PERNR_0001_ORG_DATA
ELSEIF gs_icm_exp_log-msgno = c_msg_102 .
EXPORT gr_pernr TO MEMORY ID 'PERNR_0000'.
Get Actions 0000 Data
CALL FUNCTION 'Y_HR_DIFF_PERNR_0000_DATA'
EXPORTING
period_begda = gs_icm_exp_hist-begda
period_endda = gs_icm_exp_hist-endda
refresh = space
UPDATE = space
TABLES
diff_tab = gt_diff_tab
del_tab = lt_del_tab.
ELSEIF gs_icm_exp_log-msgno = c_msg_103.
EXPORT gr_pernr TO MEMORY ID 'PERNR_0002'.
Get Personal Details 0002 Data
CALL FUNCTION 'Y_HR_DIFF_PERNR_0002_DATA'
EXPORTING
period_begda = gs_icm_exp_hist-begda
period_endda = gs_icm_exp_hist-endda
refresh = space
UPDATE = space
TABLES
diff_tab = gt_diff_tab
del_tab = lt_del_tab.
ELSEIF gs_icm_exp_log-msgno = c_msg_104.
EXPORT gr_pernr TO MEMORY ID 'PERNR_0004'.
Get Disability 0004 Data
CALL FUNCTION 'Y_HR_DIFF_PERNR_0004_DATA'
EXPORTING
period_begda = gs_icm_exp_hist-begda
period_endda = gs_icm_exp_hist-endda
refresh = space
UPDATE = space
TABLES
diff_tab = gt_diff_tab
del_tab = lt_del_tab.
ELSEIF gs_icm_exp_log-msgno = c_msg_105.
EXPORT gr_pernr TO MEMORY ID 'PERNR_0006'.
Get Addresses 0006 Data
CALL FUNCTION 'Y_HR_DIFF_PERNR_0006_DATA'
EXPORTING
period_begda = gs_icm_exp_hist-begda
period_endda = gs_icm_exp_hist-endda
refresh = space
UPDATE = space
TABLES
diff_tab = gt_diff_tab
del_tab = lt_del_tab.
ELSEIF gs_icm_exp_log-msgno = c_msg_106.
EXPORT gr_pernr TO MEMORY ID 'PERNR_0007'.
Get Planned Time 0007 Data
CALL FUNCTION 'Y_HR_DIFF_PERNR_0007_DATA'
EXPORTING
period_begda = gs_icm_exp_hist-begda
period_endda = gs_icm_exp_hist-endda
refresh = space
UPDATE = space
TABLES
diff_tab = gt_diff_tab
del_tab = lt_del_tab.
ELSEIF gs_icm_exp_log-msgno = c_msg_107.
EXPORT gr_pernr TO MEMORY ID 'PERNR_0016'.
Get Contract Element 0016 Data
CALL FUNCTION 'Y_HR_DIFF_PERNR_0016_DATA'
EXPORTING
period_begda = gs_icm_exp_hist-begda
period_endda = gs_icm_exp_hist-endda
refresh = space
UPDATE = space
TABLES
diff_tab = gt_diff_tab
del_tab = lt_del_tab.
ELSEIF gs_icm_exp_log-msgno = c_msg_108.
EXPORT gr_pernr TO MEMORY ID 'PERNR_0077'.
Get Additional Personal 0077 Data
CALL FUNCTION 'Y_HR_DIFF_PERNR_0077_DATA'
EXPORTING
period_begda = gs_icm_exp_hist-begda
period_endda = gs_icm_exp_hist-endda
refresh = space
UPDATE = space
TABLES
diff_tab = gt_diff_tab
del_tab = lt_del_tab.
ELSEIF gs_icm_exp_log-msgno = c_msg_109 .
EXPORT gr_pernr TO MEMORY ID 'PERNR_0105'.
Get Communications 0105 Data
CALL FUNCTION 'Y_HR_DIFF_PERNR_0105_DATA'
EXPORTING
period_begda = gs_icm_exp_hist-begda
period_endda = gs_icm_exp_hist-endda
refresh = space
UPDATE = space
TABLES
diff_tab = gt_diff_tab
del_tab = lt_del_tab.
ELSEIF gs_icm_exp_log-msgno = c_msg_110.
EXPORT gr_pernr TO MEMORY ID 'PERNR_2001'.
Get Absences 2001 Data
CALL FUNCTION 'Y_HR_DIFF_PERNR_2001_DATA'
EXPORTING
period_begda = gs_icm_exp_hist-begda
period_endda = gs_icm_exp_hist-endda -
Problem with Authorization for Planning folder
Hi an having a problem with providing authorization for a planning folder
i am getting the following error when i test it with test user
Error while calling up RFC
Message no. UPC202
Diagnosis
You have selected a function, to execute this the system must set up an RFC connection to another SAP System. However, setting up this connection was not successful. The following internal error message was generated:
"You do not have authorization for InfoCube ZT_MR_T "
Procedure
Inform the system administrator.
we are not pulling the data from any other server, all the data is on the sif any one has faced the same issue let me know.
Regards,
AbrahamCalling Thru Trans code: BPS0 in ECC 6
getting this error:
Error while calling up RFC
Message No. UPC202
Diagnosis
You have selected a function, to execute this the system must set up an RFC connection to another SAP System. However, setting up this connection was not successful. The following internal error message was generated:
"An error occurred during the receipt of a complex parameter."
after i check in bw trans code:st22
Following this error message:
Category Internal Kernel Error
Runtime Errors PARAMETER_CONVERSION_ERROR
Application Component BC-MID-RFC
Short text
An error occurred during the receipt of a complex parameter.
What happened?
During a remote function call, an error occurred while converting
a complex parameter.
What can you do?
Note which actions and input led to the error.
For further help in handling the problem, contact your SAP administrator
You can use the ABAP dump analysis transaction ST22 to view and manage
termination messages, in particular for long term reference.
Error analysis
An error occurred during the conversion of a complex parameter. -
Steps to create a planning folder in detail.
hai friends,
i am new to BPS .i want to create a planning folder.so i need detail steps and documentation.
Thankyou,
shankar.Hi,
T.code : UPSPM
1. Go to that t.code and create a planning folder . (tech name & description)
2. once you given the details then it will you take the next screen there you will find all your planning area , level , variable , layout and function.
3. In the Right hand side , you will find the planning folder under the planning folder you will find variable , global planning function and input layout.
4. Drag and drop your variable to Right hand side from the particular planning area which you want to make a planning folder.
5. then drag and drop the layout and function under the the planning area to Right hand side of input layout folder.
To execute the planning folder you can use t.code UPSPL.
hope this helps.
Regards,
Siva. -
Select more value of variable in planning folder
hi gurus,
I'm using planning folder.
In planning folder there is a variable that contain many value, for example 0COSTCENTER that contain 10 singles values. (from 1 to 10)
User wants to select some values contained in variable.
For example 2 and 5, even if it is authorized on all the cost center contained in variable.
In this moment it selects one to the time.
how I can make to resolve this problem?
Thanks
DavideDavide,
sorry to say that, that'z the way BPS works.
it's one of the BPSlimitation & many people are asking for an answer from SAP.
as a workaround, you can do following things.
1. user can select variable range, for example 2 to 5.
2. create a variable with properties "user specific values" & fill in required cost centers for each user & don't check the flag "input allowed by user".
in the 2nd option, you can assingn multiple single values to USER1.
if u assign, cost center 2 & 5 to USER1, USER1 gets ability to plan on both 2 & 5 without even selectiing cost centers.
3. you can even look into authorization variables & user-exit variables if they meet your requirements.
hope it helps. -
Execution of planning sequence
Hello Forum,
Can some one plz tell me How to execute a planning sequence before the execution of my layout.
Im having a layout and i need to execute my planning sequnce each time before my layout gets executed.
Plz suggest.
regards,
KKHi,
Do you want this option in Web based Application or in Planning folder?
If in Planning folder, in the edit part of planning folder, drag and drop the required function on the layout.By doing this the function will be displayed as a sub component of layout.Right click on the function and choose function attributes.You will see options like "execute function before layout display" / " Execute function on layout change".
choose the required option and save it.
This should satisfy your requirement.
If in case of web application please foollow a white paper that explains the process in detail.
Hope this helps.
-Raga -
Deriving Planning Folder Technical Name From User-Exit
Dear Colleagues,
For those of you who know ABAP, do you know if it is possible to determine the technical name of a planning folder from within a user-exit (i.e. planning function that has been executed from within a planning folder)?
Customer states: They would like to use a Planning Folder, and invoke a planning function of type user-exit (i.e. via button in folder), which will execute an ABAP that has a case statement for conditional execution of steps, based upon the technical name of the planning folder that invoked the call.
Thank you in advance for any guidance or feedback you may be able to offer.
-MHi Michael,
Write this code in the exit function
FIELD-SYMBOLS: <fsl_class> TYPE REF TO cl_upb_pm_applc.
DATA: name(50),
plan_folder TYPE upb_y_ps_name.
name = '(SAPLUPB_PM)gr_applc'.
ASSIGN (name) TO <fsl_class>.
IF sy-subrc = 0.
CALL METHOD <fsl_class>->get_active_pm
RECEIVING
r_pm = plan_folder.
ENDIF.
Glad I could be of help to the mastero.
Let me know if it worked.
thanks -
Exit function in Planning Folder
We are using BPS and I have a request to do some modifications in a specific planning folder.
When executing the folder, when the user introduces a new line, if a specific field is left empty they what me to change it to a constant, when user saves the folder.
Im an ABAP developer in R/3 and my help was requested to solve this issue using a planning function of exit type. The problems is that when Im passing in the exit function Im receiving only the values that were there before the user introduce some new information. Im not getting the new lines.
Like I said Im an ABAP developer in R/3 and BW and BPS is all new to me, so I dont know if this is the normal behaviour of the system or if Im doing anything wrong.
My question is then: its possible to get only the new information to get through the exit function or this isnt possible and if its not is there another way to do this (when saving change the value of an empty field).
Thanks in advance.
Best regards
Sónia ReisHi Sónia,
You should check with your colleagues what selection criteria they have in the Planning Level. There is a good chance that your new records do not satisfy this criteria and hence they aren't in your Exit function.
There are two possible solutions to this issue:
1. Adjust existing Planning level criteria so new records will satisfy it.
2. Create a new Planning level with selection criteria that satisfies records you are looking for and put your Exit FM there.
Which way to go depends of your particular case and perhaps your BPS colleagues could decide which option to select.
If they can't make this decision please send me additional information of what selections you have in existing Planning level and what information is entered in new rows.
Regards,
Gersh -
Medium description of Variable in the planning folder
Hi Experts,
In one of our planning folders the variable for infoobject(Cstcenter) is not put pulling the medium description in the varible section(Top part of planning folder) but same variable is pulling the medium descprion in the header of the layout (Bottom part of the llayout) with in the same folder. This problem is also for only few Costcenters, some costcenters it is pulling the data in both variable section and in the layout section
Any thoughts on this . Please share me your ideas on this. I know this is very simple but little confusing Since the same variable is dipalying the value in place but not in other place. Anybody had this problem.
Thanks in advance
Best regards
SAPThanks for your reply Bindu. In both the places test replacement and char test defined as "Medium". It is dipaying the medium text in both the places for only few CC's, but few CC's it is not diplaying the descrption in the varaible section..
Any other areas i need to check.
Thanks in advance.
Best regards
SAP -
YouTube will not work on safari for me on the ipad. Is there anyway to fix this? I can go anywhere else on the internet fine and it works on google chrome, but on safari it shows a blank screen with the bar on top after it loads, if it's even loading at all.
I do not know if it's relevant or not, but I got a message on my ipad while on safari saying that my iPhone has a virus. I looked it up and it seems it might have just been an ad from the website I was on, but it happened around the same time YouTube stopped working.You will find that using the YouTube app will provide a better viewing experience for YouTube videos.
Maybe you are looking for
-
I have a 2009 MacBook Pro which has been working fine. Had to reformat HD and reload software. Am using Mountain Lion which MS said supports Office Mac 2008. When loading it the drive ran then began making a low frequency beep, then ejected the di
-
How to handle special characters such as apostrophe, ampersant
Hello All, Tools: JSP, JSDK 2 Oracle 8 Issue: If the user supplies a String value inside a text box which has special characters such as apostrophe, while we try to compare that string with some value in the database, the sql error comes up as the sq
-
Question regarding Screen exits
Hello Developers, Is it necessary for a subscreen area to pre-exist on a standard SAP transaction screen in order to add customer fields to the screen or is it possible to define this within a BAPI? I would like to add customer fields to the screen
-
Unknown file error when capturing in FCP 6
I capturing from a DVD, using AJA Kona card, component in. I can preview the video in Log & Capture, but when I try to Capture Now, I get an unknown file error and cannot capture. Just a regular DVD, analog capture. I've tried creating new projects.
-
When I Print To Acrobat I Get A Black Background
Im using Acrobat Standard as a print driver When I print from another program to Acrobat my resulting file has a black background Im Using Acrobat Standard 11.0.08 Windows 7 - 64 Bit The black and white colors should be the other way around