WS14500015 is not working for Multilevel approval
We are trying to Implement the Workflow Template Ws14500015. We have implemented the BADI BBP_WFL_APPROVE_BADI. The workflow works perfectly for 1st level approval. We have checked that the ApproverList Container element gets pouplated with 3 levels of approval when 1 st level approver has not approved it. But as soon as the first level approver approves it this container element is updated with one entry. Please review the code I am attaching. Any help will be highly appreciated.
METHOD if_ex_bbp_wfl_approv_badi~get_remaing_approvers .
Interface parameters:
OBJECT_ID TYPE CRMT_OBJECT_ID "Import
OBJECT_TYPE TYPE CRMT_SUBOBJECT_CATEGORY "Import
GUID TYPE BBP_GUID_32 "Import
ACTUAL_APPROVAL_INDEX TYPE SWH_NUMC10 "Import
APPROVAL_HISTORY_TABLE TYPE BBP_WFL_APPROVAL_HISTORY_BADI "Import
ITEM_APPROVAL_HISTORY_TABLE TYPE BBPT_WFL_ITEM_APPROVAL_BADI "Import
APPROVAL_TABLE TYPE BBPT_WFL_APPROVAL_TABLE_BADI "Export
ITEM_APPROVAL_TABLE TYPE BBPT_WFL_ITEM_APPROVAL_BADI "Export
NO_FURTHER_APPROVAL_NEEDED TYPE BOOLEAN "Export
ITEM_APPROVAL_OBJ TYPE BBPT_WFL_ITEM_APPROVAL_OBJ "Changing
This a default implementation that gives idea about of how line item
approval should work as well to find the number of approval required
and to find the approvers.
Global data---------------------------------------------------------*
TYPES---------------------------------------------------------------*
TYPES : ty_item_info TYPE STANDARD TABLE OF /fir/rmm0bgst001.
"to have the necessary values of custom table .
DATA----------------------------------------------------------------*
DATA : it_item_info TYPE ty_item_info,"to store the approval values.
wa_item_info TYPE /fir/rmm0bgst001. " work area for item_info.
DATA : v_value_per_cctr TYPE bbp_value, " contain value per account
" type in line item of SC
v_value_per TYPE bbp_value. " value for v_value_per_cctr
" in USD
DATA : v_apprv_value TYPE bbp_value. " amount of first level.
DATA: v_call_value1 TYPE bbp_wfl_app_property,"have cost_ctr,
"asset_no or order_no value.
v_co_code TYPE bbp_wfl_app_property," have company code
v_plant_value TYPE bbp_wfl_app_property," have plant value
v_account_type TYPE bbp_wfl_app_criterion ," Account type
" ie COST_CTR, ASSET_NO or ORDER_NO.
v_comp_code TYPE bbp_wfl_app_criterion ,"COMP_CODE
v_plant TYPE bbp_wfl_app_criterion ," PLANT
v_acc_desc TYPE bbp_step_description ." approval desc.
WORKAREA------------------------------------------------------------*
DATA: wa_header TYPE bbp_pds_sc_header_d, " header of line
" item
tables and work area.
it_item TYPE TABLE OF bbp_pds_sc_item_d,
" line item details
wa_item TYPE bbp_pds_sc_item_d,
" have one line item detail.
accounting structures
it_account TYPE TABLE OF bbp_pds_acc,
" account details
wa_account TYPE bbp_pds_acc .
" one account details.
DATA: v_req TYPE bbp_wfl_app_criterion. " for creator.
CONSTANTS-----------------------------------------------------------*
Business objects
CONSTANTS:
c_po TYPE crmt_subobject_category_db VALUE 'BUS2201',
c_shop TYPE crmt_subobject_category_db VALUE 'BUS2121',
c_contract TYPE crmt_subobject_category_db VALUE 'BUS2000113'.
Approval Criteria and properties used
CONSTANTS:
c_cost_centre TYPE bbp_wfl_app_criterion VALUE 'COST_CTR',
c_order_no TYPE bbp_wfl_app_criterion VALUE 'ORDER_NO',
c_asset_no TYPE bbp_wfl_app_criterion VALUE 'ASSET_NO',
c_comp_code TYPE bbp_wfl_app_criterion VALUE 'COMP_CODE',
c_plant TYPE bbp_wfl_app_criterion VALUE 'PLANT',
c_cc_desc TYPE bbp_step_description VALUE
'Cost center approval',
c_io_desc TYPE bbp_step_description VALUE
'Order type approval',
c_as_desc TYPE bbp_step_description VALUE
'Asset Num approval',
c_usd TYPE char3 VALUE 'USD',
c_m TYPE char1 VALUE 'M',
c_x TYPE char1 VALUE 'X',
c_apprv_times TYPE char1 VALUE 3,
c_1 TYPE char2 VALUE '1',
c_as TYPE BBP_ACC_CAT VALUE 'AS',
c_or TYPE BBP_ACC_CAT VALUE 'OR',
c_cc TYPE BBP_ACC_CAT VALUE 'CC',
c_us TYPE char2 VALUE 'US'.
Case when the object type bus212...---------------------------------*
CASE object_type.
WHEN c_shop.
----------- shopping cart --------------------------------------- *
IF NOT approval_table[] IS INITIAL.
approval_history_table[] = approval_table[].
item_approval_history_table[] = item_approval_table[].
REFRESH : approval_table, item_approval_table,
item_approval_obj .
ENDIF.
REFRESH : it_item,it_account.
Get the details of the shopping cart
CALL FUNCTION 'BBP_PD_SC_GETDETAIL'
EXPORTING
i_object_id = object_id
IMPORTING
e_header = wa_header
TABLES
e_item = it_item
e_account = it_account.
Proceed if it_item is not initial.
IF NOT it_item IS INITIAL AND NOT it_account IS INITIAL.
*read the lt_item for plant
READ TABLE it_item INTO wa_item INDEX 1.
CHANGE FOR REQEUSTOR.
CONCATENATE c_us wa_item-created_by INTO v_req.
now read the table with wa_item-be_plant.
SELECT *
FROM /fir/rmm0bgst001
INTO TABLE it_item_info
WHERE zplant = wa_item-be_plant.
SORT it_item BY guid .
SORT it_account BY p_guid .
IF actual_approval_index LE c_apprv_times AND
actual_approval_index GE c_1.
looping at it_item is done to fetch the approver for every
line item
CLEAR: wa_item, wa_account.
LOOP AT it_item INTO wa_item WHERE del_ind IS INITIAL.
LOOP AT it_account INTO wa_account
WHERE p_guid = wa_item-guid.
to calculate the amount before calling the funciton module for
approval table.value respective to account type
v_value_per_cctr =
wa_account-distr_perc * wa_item-value / 100.
read the table respective to account type and for level 1 approval
such that if the value is less than zvalue then no approval required.
CLEAR: wa_item_info.
CASE wa_account-acc_cat .
WHEN c_or.
READ TABLE it_item_info INTO wa_item_info
WITH KEY zlevel = c_1 " 1
zorder_no = wa_account-order_no
zplant = wa_item-be_plant.
WHEN c_as.
READ TABLE it_item_info INTO wa_item_info
WITH KEY zlevel = c_1 " 1
zasset_no = wa_account-asset_no
zplant = wa_item-be_plant.
WHEN c_cc.
READ TABLE it_item_info INTO wa_item_info
WITH KEY zlevel = c_1 " 1
zcost_ctr = wa_account-cost_ctr
zplant = wa_item-be_plant.
ENDCASE.
IF sy-subrc = 0.
v_apprv_value = wa_item_info-zvalue.
ENDIF.
now convert the amount to local currency ie usd
CALL FUNCTION 'CONVERT_TO_LOCAL_CURRENCY'
EXPORTING
CLIENT = SY-MANDT
date = sy-datum
foreign_amount = v_value_per_cctr
foreign_currency = wa_item-currency
local_currency = c_usd
type_of_rate = c_m
read_tcurr = c_x
IMPORTING
local_amount = v_value_per
EXCEPTIONS
no_rate_found = 1
overflow = 2
no_factors_found = 3
no_spread_found = 4
derived_2_times = 5
OTHERS = 6
IF v_value_per GE v_apprv_value AND sy-subrc = 0.
To Find out Account id of what type ie cost center/IO/Asset.
IF wa_account-acc_cat eq c_cc.
v_call_value1 = wa_account-cost_ctr.
v_account_type = c_cost_centre.
v_acc_desc = c_cc_desc. "'Cost center approval'.
ELSEIF wa_account-acc_cat eq c_or.
v_call_value1 = wa_account-order_no.
v_account_type = c_order_no.
v_acc_desc = c_io_desc. "'Internal Order approval'.
ELSE.
IF NOT wa_account-asset_no IS INITIAL.
v_call_value1 = wa_account-asset_no.
v_account_type = c_asset_no..
v_acc_desc = c_as_desc. "'Asset Number approval'.
ENDIF.
ENDIF.
Defining the PLANT and plant value.
v_plant = c_plant.
v_plant_value = wa_item-be_plant.
defining the COMPNAY CODE and company value.
v_comp_code = c_comp_code.
v_co_code = wa_item-be_co_code.
Calling the Custom function to find the approvers.
CALL FUNCTION '/FIR/RP2P0BGS_ITEM_APPRV_GET'
EXPORTING
sc_guid = wa_header-guid
item_guid = wa_item-guid
approval_description = v_acc_desc
hide_items_not_responsible = c_x "'X'
each cost center approver should see only items he is responsible
criterion1 = v_account_type
criterion2 = v_comp_code
criterion3 = v_plant
value1 = v_call_value1
value2 = v_co_code
value3 = v_plant_value
approval_index = actual_approval_index
TABLES
it_item_info = it_item_info
CHANGING
approval_table = approval_table
item_approval_table = item_approval_table
item_approval_obj = item_approval_obj.
ENDIF." end if if value per cost center is more than
" level one price.
CLEAR wa_account.
ENDLOOP. " end of loop of account.
CLEAR: wa_account,wa_item, wa_item_info.
ENDLOOP. " end of loop at item
CHANGE FOR REQUESTOR.----
DELETE approval_table WHERE approval_agent = v_req.
IF approval_table IS INITIAL.
no_further_approval_needed = c_x. " 'X'.
ENDIF.
ELSE. " end of if actual_approval_index le 3.
this BADI-implementation defines 3 steps
no_further_approval_needed = c_x. "'X'.
ENDIF.
ENDIF. " end of if the it_item is not initial.
ENDCASE. "end of case if bus type is 2121
ENDMETHOD.
Function Module
FUNCTION /fir/rp2p0bgs_item_apprv_get .
""Local Interface:
*" IMPORTING
*" REFERENCE(SC_GUID) TYPE BBP_GUID OPTIONAL
*" REFERENCE(ITEM_GUID) TYPE BBP_GUID OPTIONAL
*" REFERENCE(APPROVAL_DESCRIPTION) TYPE BBP_STEP_DESCRIPTION
*" OPTIONAL
*" REFERENCE(HIDE_ITEMS_NOT_RESPONSIBLE) TYPE BOOLEAN OPTIONAL
*" REFERENCE(CRITERION1) TYPE BBP_WFL_APP_CRITERION OPTIONAL
*" REFERENCE(CRITERION2) TYPE BBP_WFL_APP_CRITERION DEFAULT ''
*" REFERENCE(CRITERION3) TYPE BBP_WFL_APP_CRITERION DEFAULT ''
*" REFERENCE(VALUE1) TYPE BBP_WFL_APP_PROPERTY DEFAULT ''
*" REFERENCE(VALUE2) TYPE BBP_WFL_APP_PROPERTY DEFAULT ''
*" REFERENCE(VALUE3) TYPE BBP_WFL_APP_PROPERTY DEFAULT ''
*" REFERENCE(APPROVAL_INDEX) TYPE SWH_NUMC10 OPTIONAL
*" TABLES
*" IT_ITEM_INFO STRUCTURE /FIR/RMM0BGST001
*" CHANGING
*" REFERENCE(APPROVAL_TABLE) TYPE BBPT_WFL_APPROVAL_TABLE_BADI
*" REFERENCE(ITEM_APPROVAL_TABLE) TYPE BBPT_WFL_ITEM_APPROVAL_BADI
*" REFERENCE(ITEM_APPROVAL_OBJ) TYPE BBPT_WFL_ITEM_APPROVAL_OBJ
*" OPTIONAL
Local data-----------------------------------------------------------*
TYPES: ty_option TYPE STANDARD TABLE OF rfc_db_opt,
ty_fields TYPE STANDARD TABLE OF rfc_db_fld,
ty_data TYPE STANDARD TABLE OF tab512.
DATA:
wa_approval_table TYPE bbp_wfl_approval_table_badi,
wa_item_approval_table TYPE bbps_wfl_item_approval,
wa_approval_def TYPE /fir/rmm0bgst001.
DATA:
v_app_obj_guid TYPE bbp_guid_32,
v_is_new_approval_object TYPE boolean.
DATA : it_update_tab TYPE STANDARD TABLE OF /fir/rmm0bgst001,
it_approval_def TYPE STANDARD TABLE OF /fir/rmm0bgst001,
wa_update_tab TYPE /fir/rmm0bgst001.
DATA : it_actor_tab TYPE STANDARD TABLE OF swhactor,
wa_actor_tab TYPE swhactor,
it_ac_container TYPE STANDARD TABLE OF swcont,
wa_ac_container TYPE swcont.
DATA : it_options TYPE ty_option,
it_fields TYPE ty_fields,
it_data TYPE ty_data.
DATA : wa_options TYPE rfc_db_opt,
wa_fields TYPE rfc_db_fld,
wa_data TYPE tab512.
DATA : v_apprv_io TYPE aufuser2,
v_apprv_cc TYPE verak.
DATA : v_cost_ctr TYPE bbp_wfl_app_property ,
v_order_no TYPE bbp_wfl_app_property ,
v_asset_no TYPE bbp_wfl_app_property ,
v_as_value TYPE bbp_wfl_app_property .
DATA : v_query_table TYPE dd02l-tabname.
DATA : v_apprv_count TYPE char1 VALUE '0'.
to find the number of lines in the table it_update_tab.
DATA : v_lines TYPE i.
DATA : v_app_ind TYPE swh_numc10 VALUE '0'.
DATA : v_destination TYPE char10,
v_system TYPE sysysid,
v_mandt TYPE symandt.
Constants-----------------------------------------------------------*
CONSTANTS:
c_clnt TYPE char4 VALUE 'CLNT',
c_agent_is_user TYPE otype VALUE 'US',
c_x TYPE char1 VALUE 'X',
c_cost_centre TYPE bbp_wfl_app_criterion VALUE 'COST_CTR',
c_order_no TYPE bbp_wfl_app_criterion VALUE 'ORDER_NO',
c_asset_no TYPE bbp_wfl_app_criterion VALUE 'ASSET_NO',
c_csks TYPE char4 VALUE 'CSKS',
c_anlz TYPE char4 VALUE 'ANLZ',
c_coas TYPE char4 VALUE 'COAS',
c_verak TYPE char5 VALUE 'VERAK',
c_user2 TYPE char5 VALUE 'USER2',
c_kostl TYPE char5 VALUE 'KOSTL',
c_aufnr TYPE char5 VALUE 'AUFNR',
c_bukrs TYPE char5 VALUE 'BUKRS',
c_anln1 TYPE char5 VALUE 'ANLN1',
c_c TYPE char1 VALUE 'C',
c_and TYPE char3 VALUE 'AND',
c_eq TYPE char1 VALUE '=',
c_org_object TYPE swc_elem VALUE 'ORG_OBJECT',
c_deli TYPE char1 VALUE '|',
c_l12 TYPE ddleng VALUE '000012',
c_off0 TYPE doffset VALUE '000000',
c_l10 TYPE ddleng VALUE '000010',
c_l20 TYPE ddleng VALUE '000020',
c_l04 TYPE ddleng VALUE '000004',
c_ind01 TYPE swc_index VALUE '000001',
c_el06 TYPE swc_length VALUE '006',
c_tab_name TYPE tabname VALUE '/fir/rmm0bgst001',
c_r10 TYPE sysysid VALUE 'R10',
c_r15 TYPE sysysid VALUE 'R15',
c_r20 TYPE sysysid VALUE 'R20',
c_r40 TYPE sysysid VALUE 'R40',
c_e10 TYPE sysysid VALUE 'E10',
c_e15 TYPE sysysid VALUE 'E15',
c_e20 TYPE sysysid VALUE 'E20',
c_e40 TYPE sysysid VALUE 'E40',
c_121 TYPE symandt VALUE '121',
c_300 TYPE symandt VALUE '300',
c_100 TYPE symandt VALUE '100',
c_120 TYPE symandt VALUE '120',
begin of change for generic entry 06-06-2007----
c_cc TYPE kostl VALUE 'CC',
c_as TYPE anln1 VALUE 'AS',
c_or TYPE aufnr VALUE 'OR'.
end of change for generic entry 06-06-2007----
-perpare the system and client for RFC----
CASE sy-sysid .
WHEN c_r10. "' R10'.
IF sy-mandt = c_120. " '120'.
CONCATENATE c_e10 c_clnt c_121 INTO v_destination.
ENDIF.
WHEN c_r15. " 'R15'.
IF sy-mandt = c_120. " '120'.
CONCATENATE c_e15 c_clnt c_300 INTO v_destination.
ENDIF.
WHEN c_r20. " 'R20'.
IF sy-mandt = c_300. " '300'.
CONCATENATE c_e20 c_clnt c_300 INTO v_destination.
ENDIF.
WHEN c_r40. " 'R40'.
IF sy-mandt = c_100. " '100'.
CONCATENATE c_e40 c_clnt c_100 INTO v_destination.
ENDIF.
ENDCASE.
Comment on logic ---------------------------------------------------*
First find the right approval object the item belongs to.
All items of an approval object are approved together in
this approval step, and therefore only one workitem is
created for this items.
CALL FUNCTION 'BBP_WFL_DIN_APP_OBJ_GET'
EXPORTING
sc_guid = sc_guid
criterion1 = criterion1
value1 = value1
IMPORTING
If 2 items of the same shopping cart have the same
values for the criterias, this function returns the
same (!!!) approval object guid
approval_obj_guid = v_app_obj_guid
TABLES
item_app_obj = item_approval_obj
Check what type of account is ie Order no/Internal order/ASSET.
if the account type is asset_no then responsible cost center is
found.
CLEAR: it_update_tab, wa_update_tab.
CASE criterion1 .
WHEN c_asset_no. " 'ASSET_NO'.
v_asset_no = value1.
CONCATENATE c_anln1 c_eq value1 " 'ANLN1' '=' value1
c_and c_bukrs c_eq value2 INTO wa_options-text
SEPARATED BY space.
APPEND wa_options TO it_options.
wa_fields-fieldname = c_anln1. " 'ANLN1'.
wa_fields-length = c_l12. " '000012'.
wa_fields-offset = c_off0. " '000000'.
wa_fields-type = c_c. " 'C'.
APPEND wa_fields TO it_fields.
wa_fields-fieldname = c_kostl. " 'KOSTL'.
wa_fields-length = c_l10. " '000010'.
wa_fields-offset = c_off0. " '000000'.
wa_fields-type = c_c. " 'C'.
APPEND wa_fields TO it_fields.
wa_fields-fieldname = c_bukrs. " 'BUKRS'.
wa_fields-length = c_l04. " '000004'.
wa_fields-offset = c_off0. " '000000'.
wa_fields-type = c_c. " 'C'.
APPEND wa_fields TO it_fields.
CALL FUNCTION 'RFC_READ_TABLE' DESTINATION v_destination
EXPORTING
query_table = c_anlz " 'ANLZ'
delimiter = c_deli " '|'
TABLES
OPTIONS = it_options
fields = it_fields
data = it_data
EXCEPTIONS
table_not_available = 1
table_without_data = 2
option_not_valid = 3
field_not_valid = 4
not_authorized = 5
data_buffer_exceeded = 6
OTHERS = 7.
IF sy-subrc = 0.
as it_data table contains only one record
so no sorting required.
READ TABLE it_data INTO wa_data INDEX 1.
v_as_value = wa_data-wa+13(10).
ENDIF.
at the end of this if asset is passed its responsible
cost is obtained and is placed in value1 field.
CLEAR : wa_data , wa_options , wa_fields .
REFRESH: it_data , it_options , it_fields .
v_cost_ctr = v_as_value.
CONCATENATE c_kostl c_eq v_cost_ctr INTO wa_options-text
SEPARATED BY space.
APPEND wa_options TO it_options.
CLEAR: wa_fields.
wa_fields-fieldname = c_verak. " 'VERAK'.
wa_fields-length = c_l20. " '000020'.
wa_fields-offset = c_off0. " '000000'.
wa_fields-type = c_c. " 'C'.
APPEND wa_fields TO it_fields.
CLEAR: wa_fields.
wa_fields-fieldname = c_kostl. " 'KOSTL'.
wa_fields-length = c_l10. " '000010'.
wa_fields-offset = c_off0. " '000000'.
wa_fields-type = c_c. " 'C'.
APPEND wa_fields TO it_fields.
v_query_table = c_csks. " 'CSKS'.
set the initial value of v_asset_no by value1.
CLEAR: v_cost_ctr .
v_asset_no = value1.
WHEN c_cost_centre . " 'COST_CTR' or 'ASSET_NO'.
v_cost_ctr = value1.
CONCATENATE c_kostl c_eq v_cost_ctr INTO wa_options-text
SEPARATED BY space.
APPEND wa_options TO it_options.
CLEAR: wa_fields.
wa_fields-fieldname = c_verak. " 'VERAK'.
wa_fields-length = c_l20. " '000020'.
wa_fields-offset = c_off0. " '000000'.
wa_fields-type = c_c. " 'C'.
APPEND wa_fields TO it_fields.
CLEAR: wa_fields.
wa_fields-fieldname = c_kostl. " 'KOSTL'.
wa_fields-length = c_l10. " '000010'.
wa_fields-offset = c_off0. " '000000'.
wa_fields-type = c_c. " 'C'.
APPEND wa_fields TO it_fields.
v_query_table = c_csks. " 'CSKS'.
WHEN c_order_no. " 'ORDER_NO'.
v_order_no = value1.
CONCATENATE c_aufnr c_eq value1 INTO wa_options-text
SEPARATED BY space.
APPEND wa_options TO it_options.
CLEAR: wa_fields.
wa_fields-fieldname = c_user2. " 'USER2'.
wa_fields-length = c_l20. " '000020'.
wa_fields-offset = c_off0. " '000000'.
wa_fields-type = c_c. " 'C'.
APPEND wa_fields TO it_fields.
CLEAR: wa_fields.
wa_fields-fieldname = c_aufnr. " 'AUFNR'.
wa_fields-length = c_l12. " '000012'.
wa_fields-offset = c_off0. " '000000'.
wa_fields-type = c_c. " 'C'.
APPEND wa_fields TO it_fields.
v_query_table = c_coas. " 'COAS'.
ENDCASE.
LOOP AT it_item_info INTO wa_update_tab
WHERE
zplant = value3 AND
zcost_ctr = v_cost_ctr AND
zorder_no = v_order_no AND
zasset_no = v_asset_no.
APPEND wa_update_tab TO it_update_tab .
ENDLOOP.
-begin of change for generic entry 06-06-2007----
it_update_tab may or may not contain the value as the per the data
maintainted. if initial then only generic value is maintained and the
the record need to be appended.
so the record which need to be appended shud be appended to
it_update_tab appropiatly with the amt of generic entry.
CLEAR : wa_update_tab.
CASE criterion1 .
WHEN c_asset_no.
READ TABLE it_item_info INTO wa_update_tab WITH KEY
zplant = value3
zasset_no = c_as."'AS'
IF sy-subrc = 0.
wa_update_tab-zasset_no = v_asset_no .
wa_update_tab-zlevel = 1.
APPEND wa_update_tab TO it_update_tab.
ENDIF.
WHEN c_cost_centre.
READ TABLE it_item_info INTO wa_update_tab WITH KEY
zplant = value3
zcost_ctr = c_cc."'CC'
IF sy-subrc = 0.
wa_update_tab-zcost_ctr = v_cost_ctr .
wa_update_tab-zlevel = 1.
APPEND wa_update_tab TO it_update_tab.
ENDIF.
WHEN c_order_no.
READ TABLE it_item_info INTO wa_update_tab WITH KEY
zplant = value3
zorder_no = c_or."'OR'
IF sy-subrc = 0.
wa_update_tab-zorder_no = v_order_no .
wa_update_tab-zlevel = 1.
APPEND wa_update_tab TO it_update_tab.
ENDIF.
ENDCASE.
end of change for generic entry 06-06-2007----
RFC to read table for finding the person responsible for the
cost center / order ie approver.
CALL FUNCTION 'RFC_READ_TABLE' DESTINATION v_destination
EXPORTING
query_table = v_query_table
delimiter = c_deli "'|'
TABLES
OPTIONS = it_options
fields = it_fields
data = it_data
EXCEPTIONS
table_not_available = 1
table_without_data = 2
option_not_valid = 3
field_not_valid = 4
not_authorized = 5
data_buffer_exceeded = 6
OTHERS = 7.
IF sy-subrc = 0.
CLEAR :wa_approval_def.
READ TABLE it_data INTO wa_data INDEX 1.
IF v_query_table = c_csks. " 'CSKS'.
v_apprv_cc = wa_data-wa+0(20).
wa_approval_def-zapprover = v_apprv_cc.
ELSE.
v_apprv_io = wa_data-wa+0(20).
wa_approval_def-zapprover = v_apprv_io.
ENDIF.
ENDIF.
find the number of record in the update table.
DESCRIBE TABLE it_update_tab LINES v_lines.
The updation of table runs only for the number of records
avaiable in the update table ie v_lines.
DO v_lines TIMES. " begin of do to approval index times.
CLEAR: it_approval_def.
v_apprv_count = v_apprv_count + 1.
wa_approval_def-zlevel = v_apprv_count .
if the count is more than one then next level of approver
is found using the rfc call swx_get_manager and stored as per.
IF v_apprv_count > 1.
v_apprv_count = v_apprv_count - 1.
READ TABLE it_update_tab INTO wa_update_tab
WITH KEY zlevel = v_apprv_count .
IF sy-subrc = 0 .
NOW FOR FINDING THE SECOND LEVEL OF APPROVER
1ST LEVEL OF APPROVER IS FOUND USING ABOVE READ.
THE FIRST LEVEL OF APPROVER IS USED TO FIND THE SECOND
LEVEL OF APPROVER USING THE SWX_GET_MANAGER.
PREPARE THE TABLES FOR SWX_GET_MANAGER
REFRESH : it_ac_container.
wa_ac_container-element = c_org_object. " 'ORG_OBJECT'.
wa_ac_container-tab_index = c_ind01. " '000001'.
wa_ac_container-elemlength = c_el06. " '006'.
wa_ac_container-type = c_c. " 'C'.
CONCATENATE c_agent_is_user wa_update_tab-zapprover
INTO wa_ac_container-value .
APPEND wa_ac_container TO it_ac_container.
CALL FUNCTION 'SWX_GET_MANAGER' DESTINATION v_destination
TABLES
actor_tab = it_actor_tab
ac_container = it_ac_container
EXCEPTIONS
nobody_found = 1
OTHERS = 2.
IF sy-subrc = 0.
READ TABLE it_actor_tab INTO wa_actor_tab WITH KEY
otype = c_agent_is_user.
wa_approval_def-zapprover = wa_actor_tab-objid.
ENDIF.
ENDIF.
v_apprv_count = v_apprv_count + 1.
ENDIF.
before updating populate the table it_approval_def
it_update_tab is read based on next v_apprv_count and
updates the approver and its value.
READ TABLE it_update_tab INTO wa_update_tab
WITH KEY zlevel = v_apprv_count .
IF sy-subrc = 0.
wa_approval_def-zplant = wa_update_tab-zplant.
wa_approval_def-zcost_ctr = wa_update_tab-zcost_ctr.
wa_approval_def-zorder_no = wa_update_tab-zorder_no.
wa_approval_def-zasset_no = wa_update_tab-zasset_no.
wa_approval_def-zvalue = wa_update_tab-zvalue.
APPEND wa_approval_def TO it_approval_def.
modify the table it_update_tab so that along with the custom
database table the table in use in this function module ie
it_update_tab also remain updated.
benefit is that if the modify to dtab fails. the process works fine.
MODIFY it_update_tab FROM wa_approval_def
TRANSPORTING zapprover
WHERE zlevel = wa_approval_def-zlevel AND
zvalue = wa_approval_def-zvalue.
now enqueue the table for modification.
CALL FUNCTION 'ENQUEUE_E_TABLE'
EXPORTING
tabname = c_tab_name " '/fir/rmm0bgst001'
EXCEPTIONS
foreign_lock = 1
system_failure = 2
OTHERS = 3.
now modify the table, for updation of approver.
IF sy-subrc = 0.
MODIFY /fir/rmm0bgst001 FROM wa_approval_def.
if sy-subrc goes 0 commit work is called.
also the it_update_tab need to be updated.
IF sy-subrc = 0.
COMMIT WORK.
ENDIF.
ENDIF.
now dequeue the table after the updation.
CALL FUNCTION 'DEQUEUE_E_TABLE'
EXPORTING
tabname = c_tab_name. " '/fir/rmm0bgst001'.
ENDIF.
once all done clear the work areas.
CLEAR : wa_approval_def-zlevel , wa_approval_def-zapprover.
ENDDO. " END OF DO STATEMENT.
SORT it_approval_def BY zlevel ASCENDING.
as per the logic for the different level of approval.
for second level of approval only records above 2 should be
present in the apprval table.
so for approval index = 2 delete the first record ie for zlevel = 1.
and for approval index = 3 delete first two records ie zlevel = 1 and
zlevel = 2. thus only one approval of zlevel 3 is left in the table
which is used to update the approval table.
IF approval_index = 2 .
DELETE it_approval_def INDEX 1.
ELSEIF approval_index = 3.
DELETE it_approval_def INDEX 1.
DELETE it_approval_def INDEX 1.
ELSEIF approval_index GT 3.
REFRESH : it_approval_def .
ENDIF.
for above 3 as approval index there shud be no enteries in the table.
so the table is refreshed and thus the approval table will not
contain anything.
approval_index is assigned to a varaiable
v_app_ind = approval_index.
v_app_ind is incremented for every next record so that approver is
assigned to next approval index.
beign of change 28th may 2007----
clear : v_app_ind .
v_app_ind = v_app_ind + 1.
LOOP AT it_approval_def INTO wa_approval_def.
wa_approval_table-approval_index = v_app_ind.
CONCATENATE c_agent_is_user wa_approval_def-zapprover
INTO wa_approval_table-approval_agent.
wa_approval_table-approval_description = approval_description.
wa_approval_table-approval_object_guid = v_app_obj_guid.
wa_approval_table-hide_items_not_responsible =
hide_items_not_responsible.
APPEND wa_approval_table TO approval_table.
v_app_ind = v_app_ind + 1 .
CLEAR: wa_approval_def.
ENDLOOP.
sort the approval table so that approvers come in sequence.
SORT approval_table BY approval_index.
ENDIF.
fill item table (which items belongs to which approval object)
wa_item_approval_table-approval_object_guid = v_app_obj_guid.
wa_item_approval_table-approval_item_guid = item_guid.
APPEND wa_item_approval_table TO item_approval_table.
CLEAR :wa_item_approval_table,wa_approval_table,it_update_tab.
ENDFUNCTION.
Thanks
Arghadip
[email protected]
Hi,
You have to debug the entire system behaviour , the approval process using the second approver.
As first step , please check the security level of the second approver. Restart of workflow is based on the security level of the approver.
you can find the parameter for security level in the personalization tab of the user .
there is one function module which determines wether the workflow should be restarted (or) not.
i do not remember the exact name of the function module.
1)start transaction se37
2)enter bbpwflrestart*.
3) system will return a number of function modules , of them one function module determines wether to restart the workflow (or) not.
Please check what does the above function module return for the user and the shopping cart , there will be one parameter 'restart' which triggers the start
Similar Messages
-
EP6.0 SP2 to EP 7 upgrade - UWL not working for PCR approvals
Hi there,
Following the EP 7.0 migration, the UWL is not working for PCR approvals. Following the registration of the WebFlowConnector, using the default configuration, clicking a PCR approval item in the Inbox brings up the following error:
HTTP handler for starting an external service cannot be read
In order to rectify this, the following configuration file was uploaded.
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE UWLConfiguration PUBLIC '-//SAP//UWL1.0//EN' 'uwl_configuration.dtd' [ ]>
<UWLConfiguration version="1.0">
<ItemTypes>
<ItemType name="uwl.task.webflow.TS50000075" connector="WebFlowConnector" defaultView="defaultView" defaultAction="launchIView" executionMode="default">
<ItemTypeCriteria systemId="D46CLNT080" externalType="TS50000075" connector="WebFlowConnector"/>
<Actions>
<Action name="launchIView" handler="IViewLauncher">
<Properties>
<Property name="iview" value="com.sap.pct.hcm.isrdispatcher.default"/>
<Property name="openInNewWindow" value="yes"/>
</Properties>
<Descriptions default="launchIView"/>
</Action>
</Actions>
</ItemType>
</ItemTypes>
</UWLConfiguration>
Following the new configuration, clicking the item HAS NO EFFECT i.e. no window, no action, nothing. The only available option available is an option to Forward the item.
I have tried the following ItemType names with the same result:
1. uwl.task.webflow.TS50000075.D46CLNT080
2. uwl.task.webflow.D46CLNT080_TS50000075
Has anyone encountered this before?
Cheers
JohnFYI. The problem seems to be occuring as a result of the running EP7.0 with a SAP R/3 46C backend.
I did manage to get this working in the end. I had to create an iView say "myISRDispatcher" based on the portal component com.sap.pct.hcm.isrdispatcher.default. Update the UWL configuration to refer tot his PCD location as shown below:
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE UWLConfiguration PUBLIC '-//SAP//UWL1.0//EN' 'uwl_configuration.dtd' [ ]>
<UWLConfiguration version="1.0">
<ItemTypes>
<ItemType name="uwl.task.webflow.TS50000075" connector="WebFlowConnector" defaultView="defaultView" defaultAction="launchIView" executionMode="default">
<ItemTypeCriteria systemId="D46CLNT080" externalType="TS50000075" connector="WebFlowConnector"/>
<Actions>
<Action name="launchIView" handler="IViewLauncher">
<Properties>
<Property name="iview" value="pcd:portal_content/myISRDispatcher"/>
<Property name="openInNewWindow" value="yes"/>
</Properties>
<Descriptions default="launchIView"/>
</Action>
</Actions>
</ItemType>
</ItemTypes>
</UWLConfiguration> -
Activesync not working for Windows Phone with certificate
We have a new Exchange Server 2013 setup and using activesync. We have setup a policy to require simple password and to send an email to provision a device when it connects. Activesync is setup to use self signed certificates, this was
tested first on the Ipad. Certificate installed entered the settings and the device appeared in the quarantined devices list awaiting to be approved. This was also done on the Iphone and worked.
When putting the same certificate on the windows phone device it errored with there is a problem with {as.domain-name.net} and does not appear in quarantined devices screen.
I tested again with another Ipad and an android device and they work without an issue. Tested with a Windows RT device and got the same issue. If I look in the IIS log files I can see the windows device making a connection then when I presume
to be the error 500 at the end of the line.
This is not a user issue as I can use the same user on the various devices. The windows devices just do not want to connect. We have looked at the certificate but if it works for apple and android devices why does it not work for windows?
Is there any additional security settings that need to be turned on or off for windows phones? Is there something specific on the certificate what windows devices need that others ignore?I did inital think it might be a widows phone issue but there are no other settings for me to use. I have also tested using a windows 8 surface and I get the same issue.
I have raised the event log level on the exchange server to expert and I have seen 2 messages when I try to connect.
I get Event ID 1100: Exhcnage ActiveSync device requests for your uses are being blocked. This problme frequently occurs when HTTP OPTIONS method is not allowed.
I know it is allowed as the test exchange connectivity worked and passed that test.
The other error Event ID 1309 ASP.NET warning. Part of the exception messge is DeviceTypeMissingOrInvalid
I have come across a comment that says for certificates to work you need to use windows intune or SCCM which we don't have. Do we know if this is true? -
Style Code Not Working for Read Only Users !
Hi
Can anyone help us with this issue. We have created some special Styling code in order to hid the Quick Launch on the home page of our main SharePoint site. The Styling works no problem at
all for users with edit rights, however we found that the styling did not work for users with read only access. What we found was that if we switched on the "Edit Items - Edit items in lists, edit documents in document libraries, and
customize Web Part Pages in document libraries." in the List Permissions for the Permission Levels for the Read Access group, the Styling then works no problem at all. HOWEVER it then gives those users the ability to EDIT the site page, as it then
puts the Edit option on the page top right for the user to click and then mess up the web page, which we can not permit.
SO..... How do we get this styling to work for ALL user types ?Hi,
This usually happens when the CSS file is not published or approved, please check it.
If the CSS files uploaded in the Style Library, please check whether you had to check in those CSS files or not.
Best Regards
TechNet Community Support
Please remember to mark the replies as answers if they help, and unmark the answers if they provide no help. If you have feedback for TechNet Support, contact
[email protected] -
Extended Notification not working for Dialog Task with agent assignment
Hi Friends,
I have an issue where I have a user decision step and a sub workflow contains a dialog task with agent assignment.
Extended notification is configured properly and is working properly for user decision step but its not working for the dialog task created as an activity.
Batch jobs are configured to run report SWN_SELSEN.
I was checking SDN and found this discussion handy :
http://help.sap.com/saphelp_nw73ehp1/helpdata/en/4f/3bed495cc018c8e10000000a42189e/content.htm
One thing that wonders me is that notifications show up in SOST 4-5 seconds before the user decision step starts execution.
See screenshot from SOST and WF log.
SOST log :
2 questions here: Why is notification not being sent for Dialog task?
Why is user decision notification being sent that early even before the User decision task starts execution?
Please provide your valuable inputs.
Regards,
SandipAn activity step with agents is supported by the extended notifications if it is a decision task or not, I have used it many times and it works well just no approval/rejection links if it's not a decision task.
From your screenshot you can see that a mail has been created and is found in SOST, usually this cases are problems with the mail server or connection to it, check the mail settings in the SMTP node in transaction SCOT, also check with mail server team if there is a block to/from the SAP server. -
I have an event in my calendar that was sent by someone that does not work for the company anymore and I am reminded 2 times a week. How do I delete it?
Tap on the event to open the event. Click the 'Edit' button in the event bubble, then press the 'Delete Event' button at the bottom of the Edit pop-up. It's a little different for events that come through Microsoft Exchange, you tap the event to bring up bubble and click the 'Details' button, and then press 'Decline' to remove the event.
-
IPhone 6 External Mic not working for Siri/Dictation
I am finding that the external mic on my iPhone 6 works for phone calls and voice memos, but does not work for Siri/Dictation. When I plug in the earbuds, they work for everything (including Siri/Dictation).
Was chatting to Apple support who had me reset all settings. I thought that worked, but realized that after a reset, Siri is off and I was talking to "Voice control" (which works). When I turned Siri back on, it does not work.
I have two questions for the community to see if you can help:
1- I have been assuming this must be a software problem since the mic does work for non-Siri access. But is that true? Is there a hardware component that Siri depends on which could be faulty here?
2- If it is software, what action should I try to address it? I have done a reset all settings already and that did not help.
DougHi, everyone. I talked to Apple Genius at Apple Store last week, she said it should be a software issue and I needed to reset my iphone 6 plus as a new device and I can not use the backup restore from my iCloud, it was because the microphone bug or glitch can be in the backup also. Ok, followed her advice, erased all contents and set my iphone as a new device , the microphone worked for an hour, but went bad again. I used "voice memo" app from Apple to test the microphone. It is the best tool since it doesn't involve any provider's network and it doesn't need another person's phone to listen and test. If you can hear your voice recording clearly, then the mic works. I tested it 3-4 times a day for a few days now, half of the time the mic doesn't work. So, set as a new device isn't working. The issue is intermittent and it comes and goes as it likes, so very annoying. I carry my Apple EarPods with me in these past few days ust in case I need to make important phone calls. Will need to go back to Apple Genius this weekend for sure. Will give update after the weekend.
-
CALLER ID not working for International incoming calls
Hi,
I've a strange issue where CALLER ID not working for International incoming calls, it shows INTERNATIONAL UNKNOWN NUMBER in the phone display, but the number shows correclty in Verizon Call assistant !!!
Any clue?yashshankar wrote:
Hi
I recently purschased an Online number but the caller id does not work for incoming calls.How do we resolve this problem?.
Regards
Yash
You didn't mention what country your Online Number is in. Not all of Skype's Online Numbers are eligible for use as Caller ID when calling telephones or sending SMS messages. If your number is from one of these countries (Chile, Denmark, Estonia, Hong Kong, Poland, Sweden, the UK and the US), then it can be used this way. Otherwise, you can use a mobile number from countries other than Japan or Mexico as Caller ID with Skype, after the number goes through a verification process where Skype sends SMS messages with codes to that number.
To get to these settings, log into your Skype account here on the Skype web site using the "Account" link at the top of this page. You'll see a screen that would include your current Caller ID settings, and a link to change that. If your Online Number is from one of those countries I referenced above, just select it and you're done.
Hope that helps!
Patrick
Location/Ubicacion: Arizona USA
Time Zone/Hora Local: UTC/GMT -7
If this message has adequately addressed your issue, please click on the “Accept as Solution” button. If you found a post useful then please "Give Kudos" at the bottom of my post, so that this information can benefit others.
Si esto mensaje le ha ayudado, por favor haga clic en "Aceptar como solución". Si encuentra un mensaje útil, por favor "Da Kudos" al final del mensaje, por lo que esta información puede beneficiar a otros.
I am not a Skype employee. No soy un empleado de Skype. -
Select All in a table does not work for Drag and Drop
Hi. I am using Jdeveloper 11.1.1.2 but have also reproduced in 11.1.1.3.
I am trying to implement drag and drop rows from one table to another. Everything works fine except when I do a Select All (ctrl-A) in a table, the table visually looks like all rows are selected, but when I try to click on one of the selected rows to drag to the other table, only the row I click on is dragged.
I tried setting Range Size -1, fetch mode to FETCH_ALL, content delivery to "immediate" but nothing works.
I even have reproduced not using a view object but just a List of beans with only 5 or 10 beans showing in the table.
Does anyone know how to get Select All to work for a Drag Source?
Thanks.
-EdFrank-
OK, thanks for looking into that. I also submitted this service request, which includes a simple sample app to demonstrate the problem:
SR #3-2387481211: ADF Drag and Drop does not work for rows in table using Select All
Thanks again for the reply.
-Ed -
Form Designed in LiveCycle will not work for End User
Please Help!
I am a newbie to Adobe LiveCycle but recognized the utility in the program, so decided to give it a while to try and streamline some of my employer's forms. After spending too much time learning how to design a form (much to the dislike of my boss), I am finally going to have to ask for some help. So here's the deal:
I've designed a dynamic pdf in LiveCycle with two master pages and two repeating flowed subforms. The first repeating subform is basically an expanding table intended to be used as a photographer's log where they can log each photo taken with the camera. The expanding table has some code with a button at the top for the end user to enter the number of photos on the photo roll, click submit, and table expands to however many instances of rows are needed for each photo that was taken. The second subform is basically an image field and text fields used as photo captions/photo compilation pages. When the end user clicks submit on the first subform to expand the table, I also have javascript in that click event to also create same amouint of instances of the second subform (the photo compilation page(s)). Each text field for the photo caption on the second subform is populated by the data entered into the photo log table cells. I was able to find a script to correctly populate those fields for each instance of the table. Wish I had the form here, but it's at work at the moment.
My problem is this: I've scratched and clawed to get all of the forms expanding correctly and the scripts populating each instance of the fields correctly and everything works great in LiveCycle preview. I then saved the form as PDF for use by my field crew personnel (whom all use, at the very least, Adobe Pro 9, but most Pro X). I sent the new form to them and they move it to their desktop, open it with Adobe Pro, and populate all of the fields and everything works swimmingly. However, once they save it, it gets all jumbled and they can't even print it. We even thought we found a workaround by entering all data and printing to PDF, but even that has turned out to not work. I checked to make sure that I designed and saved the form in LiveCycle for use with the Adobe Pro versions, but still not working for my end users.
Anyone have any thoughts on my long explanation?? Please HELLLLPPPP!The error(s) occur when trying to save the document. I want each user to tell the first page how many rows they will need in the photo log table, so they would enter however many photos were taken in the box: "Number of Photos on Roll:" ---> Then click the "Submit" cmd button. That should expand the table. Once it expands, it should also add the same amount of instances of the photo compilation page (2nd Page) as there are rows in 1st page table. Then the user will populate each cell of the table on page 1 with data. The data entered into the page 1 table cells will populate the text fields (photo caption) in Page 2 once the user clicks on the "Populate Captions!" cmd button in the lower left corner of the table on Page 1.
The problem is in the distributing of the form to the user so they can save the form after populating the data. I did a test run this morning and for some reason it did do the "print to PDF" correctly for 5 photos on the roll (though this has not been happening every time and especially for a large number of pages, ie. 80 photos). However, after entering the data for 5 rows on page 1 and then populating the 5 photo compilation pages, I saved a copy as "Save As PDF" and closed the document. Then re-opened the copy in Acrobat Pro X. The new copy:
-had 5 additional rows added to Page 1
-Duplicates of some of the fields
-Only retained the 1st instance of the Second Page (Photo w/ Caption) and not all fields were populated
Again, this all works fine in the LiveCycle Preview but not anywhere else. I do not have this set up to be linked to an external data source (YET) but there is javascript in the cmd buttons. I also do not want to distribute this form to end users and then collect the data back from them. I want them to be able to save a copy of my LiveCycle designed form, open in Adobe Pro, populate the data and save as many copies as needed for form production. -
Wake on Demand: Not working for some services, others OK
I haven't been able to figure this problem out... Wake on Demand for a previous generation Mac mini running Snow Leopard 10.6.8 works for things like a CrashPlan automated backup but does not work for things like remote SSH login or Screen Sharing. In all cases, the services are being originated on a latest generation iMac running Mac OS X Lion (10.7.2).
While it's not an earth-shattering event to get off my backside and walk over to the Mac mini across the house to press its Shift key to waken the thing, it gets rather old to have to keep doing so, especially since CrashPlan automated backups are taking place while the Mac mini is otherwise asleep (the sleep indicator is slowly pulsing).
I've been through the Apple tech notes regarding Wake on Demand for Snow Leopard 10.6 and have ensured that AirPort and its network are at the top-most position in their respective lists. Other than that, I'm not sure what else I can do. Wake on Network is enabled in the Snow Leopard Mac mini's network System Preferences and there doesn't seem to be any on/off option in the AirPort Extreme base station (just recently updated to 7.6 firmware).
Any thoughts... hints... suggestions?
One final note: this Mac mini is new as of July 2011; just days before the latest generation of Mac mini came out. It came pre-installed with Snow Leopard and, as soon as the users of this mini find software replacements for the old PPC style applicaitons they're used to using, will be upgraded to Lion. However, I feel a bit unsettled in making the move to Lion if I can't get a Snow Leopard feature to work properly. There's no telling if the Lion upgrade will actually fix this behavior or make it worse.
Thanks in advance.I don't think you can wake on network with a closed lid. Try keeping the lid open and putting the machine to sleep. Does it work?
-
DNS not working for some computers
We have a SRP521W router and is set up with one SSID for wireless. In our office all the computers (5) can connect but only some may get on the internet. I have a laptop I am testing with and it will not connect, wired or wireless.
I found an article relating to flushing DNS, tried that, no luck.
I found another that said I should try setting my DNS to 208.67.222.222 and this worked, internet works fine.
I tried rebooting the DSL modem and router, tried many different things but am not a networking guru so I am just not sure why the DNS is not working for one computer but works for another, connected to same LAN or SSID.
Thanks,
BradThough what Don posted is one way to accomplish it, I never add anything to my DNS and it works fine. Windows DNS, in a default installation, will automatically forward to the root (.com, .edu, .gov, etc.). So I always just point my workstations
to my Domain Controller as their DNS and everything works just fine without any additional configuration.
Guess I'm one of those who won't even trust Google for sharing a DNS, particularly when I have never needed to set up any forwarders.
.:|:.:|:. tim -
Thunderbird Mission Control Desktop/AutoConfig not working for some users
I have the file: "C:\Program Files (x86)\Mozilla Thunderbird\defaults\pref\custom.js"
It contains:
pref("general.config.obscure_value", 0);
pref("general.config.filename", "TMcustom.cfg");
I have the file: "C:\Program Files (x86)\Mozilla Thunderbird\TMcustom.cfg"
It contains:
var promptService = Components.classes["@mozilla.org/embedcomp/prompt-service;1"]
.getService(Components.interfaces.nsIPromptService);
promptService.alert(null, "title", "testing");
For most of my users the alert pops up fine when I start Thunderbird, but for a few it doesn't. All of the machines where setup with the same install script. If I log into one of the machines where it's not working as a different user, then it works fine, so I know the files are in the right spot. So why would it not work for specific users? Is there something in the user's Windows profile that could cause it to not work? Or are there any other suggestions?As it turns out this was a known bug that was corrected in the recent release of Java 7_65 and Java 8_11. Here is a link to the bug description in the database.
Bug ID: JDK-8019274 RMI thread can no longer call out to AWT thread for webstart app -
After Upgradation BPF is not working for some users
Hi All,
We have recently upgraded from BPC 5.1 to 7MS SP7. we are having multi server setup with one application / reporting server (windows 2003 and one sql server 2008 (windows 2003 64 bit).
Intially before upgradation we don't have any issues with BPF and it worked fine for all users. But post upgradation tasks within the BPF does not work for other users except for the first two people who first used it. Other users have the same rights as the ones who can access the tasks.
when they click on the link it gets them to eExcel and the right application but doesnt open the package or report assigned to the task. It doesn't give us any errors, on the status bar we get a message finalising but does not getting any thing.
Any inputs ??Hi,
Are you sure that those users have installed BPC 7 SP7 clients on their machine? Meaning that you uninstalled 5.1 clients and installed the new client from http://servername/Osoft?
If yes, you should maybe run a client diagnostic on the machines and also check the Management Console for any error messages.
Hope this will drive you to a potential solution.
Best Regards,
Patrick -
Outlook autodiscover is not working for some users in coexistence
Hi
We are doing exchnage 2013/2010 coexistence
Most everything is ok BUT outlook autodiscover is not working for some exchange 2010 users now that 2013 is in the front!!!. We end up creating the profiles manually. It has affected some but not all the users.
I followed the instructions here but it didn't help.
http://blogs.technet.com/b/tips_from_the_inside/archive/2012/01/11/autodiscover-fails-for-one-or-more-users.aspx
Using outlook 2010, 2013, patches, .... didn't make a difference
Would you please help?
Thank youHi
If it is affecting only few handful of users i could suspect a mailbox corruption and would recommend to move mailbox and see the results.
Also you can try below
You need to set the values MaxFieldLength, MaxRequestBytes & MaxTokenSize to below on Exchange 2010 CAS servers as well as Exchange 2013 CAS servers
Path: HKEY_LOCAL_MACHINE\System\CurrentControlSet\Services\HTTP\Parameters
Name: MaxFieldLength
Type: DWORD
Value: 65534
Path: HKEY_LOCAL_MACHINE\System\CurrentControlSet\Services\HTTP\Parameters
Name: MaxRequestBytes
Type: DWORD
Value: 16777216
Path: HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Lsa\Kerberos\Parameters
Name: MaxTokenSize
Type: REG_DWORD
Value: 48000
Just reboot the servers once its done and you will be good to go.
References
https://social.technet.microsoft.com/Forums/en-US/cc2929ac-4d36-4e84-a567-ce9b3bec1398/http-400-bad-request-on-iis-8-exchange-2013-cu2-on-windows-server-2012-autodiscovery-is-not?forum=exchangesvrgeneral
http://blogs.technet.com/b/kristinw/archive/2013/03/28/recommended-changes-and-enhancements-to-support-exchange-in-an-enterprise-environment-whew.aspx
Remember to mark as helpful if you find my contribution useful or as an answer if it does answer your question.That will encourage me - and others - to take time out to help you Check out my latest blog posts on http://exchangequery.com Thanks Sathish
(MVP)
Maybe you are looking for
-
can i and how can i change it
-
Skype name grabbed from PC and mobile
I have a friend who's main Skype account was recently flooded with contact requests. She eventually made a new Skype account, and only used it on her phone. But that account was flooded with requests too, and we both have no idea why.
-
JAR file decompressed before run?
hi, does anyone know if a JAR file is decompressed totally to some temporary location before it is run? So if you had a 1Gb Jar file that was mostly odd files, and a few java classes to do some optional processing which never occured, would the remai
-
hey there! I opened a file with Eclipse SDK 3.2.2, and a certain warning appears: The serializable class xxx does not declare a static final serialVersionUID field of type long. After hitting Ctrl-1, a few options appeared, one of them being Add gene
-
How to make a graph dynamic data driven? Plus some XML basics for Illustrator?
I need to make some graphs that are linked to a series of data through XML files (originally Excel) and create an indvidual document for each data set. They will be used for the web and print. Please advise.