Authoization Issue for tables
Hi,
We have got two master tables which is maintained by a ABAP program. This has a similar affect like sm30. These tables are not generated by Table maintainence generator but via ABAP program using different function modules for eg:
CALL FUNCTION 'VIEW_MAINTENANCE_CALL'
EXPORTING
action = p_action
view_name = lv_view
complex_selconds_used = 'X'
TABLES
dba_sellist = t_dba_sellist.
Now the issue is how to provide display authorization to this Z master tables. We want some users to have display and other superusers to maintain this tables.
Can anyone help me out please.
Regards
Raj.
Thanks Guys but I think you didnt get my problem. As I said the maintainence view is called from the program with out any authorisation object in the maintainence generator.
These z master tables are called via a main program using user command or function codes attached to it. When you press on a particular icon these function codes get activated and the maintainence tables are executed via the maintainence function.
We have two users :
Manager - he needs to maintain those tables
General User - he has to have a display authorisation
Please advice me how to give display authorisations for such individiual tables.
Rgds
Raj.
Similar Messages
-
Item Conversion Template Issue for Oracle Migration - Copy functionality
Hi,
I am working on Migration project which is from Radius ERP to Oracle 11.5.10.2.
Currently working on Item Conversion. This Item conversion having the fileds like (ORGANIZATION_ID,SEGMENT1,DESCRIPTION,ITEM_TYPE,COST_OF_SALES_ACCOUNT,SALES_ACCOUNT,ATTRIBUTE_CATEGORY,ATTRIBUTE1,ATTRIBUTE2,ATTRIBUTE3,ATTRIBUTE4,ATTRIBUTE5,ATTRIBUTE6,ATTRIBUTE7,ATTRIBUTE8,ATTRIBUTE9,ATTRIBUTE10,ATTRIBUTE11,ATTRIBUTE12,ATTRIBUTE13,ATTRIBUTE14,ATTRIBUTE15,GLOBAL_ATTRIBUTE10,REF_INVENTORY_ITEM_ID,REF_ORGANIZATION_ID).
I have validated those fields and loaded into interfacing to Oracle Successfully in the master Org and Validated through Frontend.
when I close the form, I will be receiving the below warning message and telling that Template id needs to be assign to the item before assigning item to the Org. The message is showing like
"*You have not applied a template to this item, please apply a template before assigning this item to an ORG.*"
Please find the below package which I wrote for this conversion requirement.
The customer is saying like need to achieve the copy functionality based on the "REF_INVENTORY_ITEM_ID and REF_ORGANIZATION_ID".
The Issue is am not able to handle the copy functionality and getting above message. kindly refer the package and suggest me where i am doing the mistake. Its high priority issue for me.
Thanks in advance.
CREATE OR REPLACE PACKAGE APPS.xxxx_inv_items_conv_pkg
AS
PROCEDURE xxx_item_conversion_proc (
errbuf OUT VARCHAR2,
retcode OUT VARCHAR2,
p_org_id IN NUMBER,
-- p_commit_point IN NUMBER,
p_load_code IN VARCHAR2
IS
<<Local Variables Declaration>> <<For space limit deleted these variables>>
CURSOR cur_item_master (pc_org_code VARCHAR2)
IS
SELECT itemstg.*
FROM xxx_inv_system_items_stg itemstg
WHERE itemstg.organization_id = pc_org_code
AND itemstg.status_flag IS NULL;
CURSOR cur_item_master_dup (pc_org_code VARCHAR2)
IS
SELECT itemstg.segment1, itemstg.organization_id
FROM xxx_inv_system_items_stg itemstg
WHERE itemstg.ROWID <
(SELECT MAX (b.ROWID)
FROM xxx_inv_system_items_stg b
WHERE b.segment1 = itemstg.segment1
AND b.organization_id = itemstg.organization_id
AND b.organization_id = pc_org_code
AND itemstg.status_flag IS NULL
AND b.status_flag IS NULL);
BEGIN
IF p_load_code = 'Insert'
THEN
l_transaction_type := 'CREATE'; -- Default Value in I/F Table
ELSIF p_load_code = 'Update'
THEN
l_transaction_type := 'UPDATE'; -- Default Value in I/F Table
END IF;
DBMS_OUTPUT.put_line ( 'Validation Starts At :'
|| TO_CHAR (SYSDATE, 'DD-MON-YYYY HH24:MI:SS')
--Checking for Duplicate Records items
BEGIN
UPDATE xxx_inv_system_items_stg a
SET a.status_flag = 'E',
a.error_message = 'Duplicate Record'
WHERE a.ROWID >
ANY (SELECT b.ROWID
FROM xxx_inv_system_items_stg b
WHERE a.segment1 = b.segment1
AND a.organization_id = b.organization_id)
AND a.organization_id = p_org_id
AND a.status_flag IS NULL;
EXCEPTION
WHEN OTHERS
THEN
DBMS_OUTPUT.put_line ('Exception in updating duplicates'
|| SQLERRM
END;
DBMS_OUTPUT.put_line ('CheckPoint: Duplicate Record');
BEGIN
SELECT organization_id
INTO l_organization_id
FROM org_organization_definitions
WHERE organization_id = p_org_id;
EXCEPTION
WHEN NO_DATA_FOUND
THEN
DBMS_OUTPUT.PUT_LINE(p_org_id||' Org Does Not Exist');
-- p_retcode := '2';
WHEN OTHERS
THEN
DBMS_OUTPUT.PUT_LINE('Exception in Getting Org Id'||'Cannot Proceed');
-- p_retcode := '2';
END ;
DBMS_OUTPUT.put_line ('CheckPoint: Orgcode' || l_organization_id);
/* IF p_retcode = '2'
THEN
RETURN;
END IF;*/
--Block : Setting Master and Validation Orgs Flags
BEGIN
SELECT DECODE (master_organization_id, l_organization_id, 'Y', 'N'),
master_organization_id
INTO l_master_org,
l_master_org_id
FROM mtl_parameters
WHERE organization_id = l_organization_id;
EXCEPTION
WHEN OTHERS
THEN
l_master_org := 'N';
l_master_org_id := NULL;
DBMS_OUTPUT.PUT_LINE(p_org_id||' Org Does Not Exist');
END ;
DBMS_OUTPUT.put_line ('master_organization_id');
SELECT fnd_profile.VALUE ('USER_ID')
INTO l_user_id
FROM DUAL;
-- Block : Set the SET_PROCESS_ID
l_set_process_id := l_organization_id;
l_insert_count := 0;
LOOP
BEGIN
SELECT COUNT (segment1)
INTO l_insert_count
FROM mtl_system_items_interface
WHERE set_process_id = l_set_process_id
AND transaction_type = l_transaction_type
AND process_flag = 1;
EXCEPTION
WHEN OTHERS
THEN
l_insert_count := 0;
END;
EXIT WHEN l_insert_count = 0;
l_set_process_id := l_set_process_id + 10;
END LOOP;
DBMS_OUTPUT.put_line ('SET PROCESS ID -l_insert_count ' || l_insert_count);
IF p_load_code = 'Insert'
THEN
BEGIN
FOR recitem_data IN cur_item_master_dup (p_org_id)
LOOP
UPDATE xxx_inv_system_items_stg
SET status_flag = l_processed_flag,
error_message = l_error_message
WHERE segment1 = recitem_data.segment1
AND organization_id = recitem_data.organization_id
AND status_flag IS NULL;
COMMIT;
END LOOP;
EXCEPTION
WHEN OTHERS
THEN
DBMS_OUTPUT.put_line ( 'Update of Duplicates Failed : '
|| SQLCODE
|| '--'
|| SQLERRM
END ;
END IF;
FOR recitem_data IN cur_item_master (p_org_id)
LOOP
<<Local Variables Declaration>> <<For space limit deleted these variables>>
IF p_load_code = 'Update'
THEN
l_error_message := 'Update Mode' || l_error_delimiter;
END IF;
--l_count := -1;
BEGIN
DBMS_OUTPUT.put_line ('CheckPoint: ItemValidationStart');
SELECT DISTINCT inventory_item_id,
restrict_subinventories_code,
restrict_locators_code
INTO l_inventory_item_id,
l_restrict_subinventories_code,
l_restrict_locators_code
FROM apps.mtl_system_items_b msi
WHERE msi.organization_id = l_organization_id
AND msi.segment1 = UPPER (recitem_data.segment1);
EXCEPTION
WHEN NO_DATA_FOUND
THEN
l_count := 0;
-- l_processed_flag := 'F';
DBMS_OUTPUT.put_line ('inventory_item_id - AFTER MAIN LOOP' || l_inventory_item_id||'-'||l_processed_flag);
DBMS_OUTPUT.put_line ('inventory_item_id - AFTER MAIN LOOP' || l_inventory_item_id||'-'||recitem_data.ref_inventory_item_id);
WHEN OTHERS
THEN
l_count := -1;
-- l_processed_flag := 'F';
DBMS_OUTPUT.put_line ('inventory_item_id - AFTER MAIN LOOP' || l_inventory_item_id||'-'||l_processed_flag);
END ;
DBMS_OUTPUT.put_line ('inventory_item_id - AFTER MAIN LOOP'||recitem_data.ref_inventory_item_id);
IF l_count = -1
THEN
l_processed_flag := 'F';
l_error_message :=
l_error_message
|| 'Exception - Checking Item already Present'
|| l_error_delimiter;
DBMS_OUTPUT.put_line ('Exception - Checking Item already Present'||l_processed_flag);
ELSIF (l_count > 0 AND p_load_code = 'Insert')
THEN
l_processed_flag := 'F';
l_error_message :=
l_error_message
|| 'Item Already Exists In '
|| p_org_id
|| ' Organization '
|| l_error_delimiter;
DBMS_OUTPUT.put_line ('Exception - Checking Item already Present1'||l_processed_flag);
ELSIF (l_count = 0 AND p_load_code = 'Update')
THEN
l_processed_flag := 'F';
l_error_message :=
l_error_message
|| 'Item Not Present In '
|| p_org_id
|| ' Organization '
|| l_error_delimiter;
DBMS_OUTPUT.put_line ('Exception - Checking Item already Present2'||l_processed_flag);
END IF;
BEGIN
SELECT count(*)
INTO l_seg_count
FROM apps.mtl_system_items_b msi
WHERE msi.organization_id = l_organization_id
AND msi.segment1 = UPPER (recitem_data.segment1);
EXCEPTION
WHEN NO_DATA_FOUND
THEN
l_seg_count := 0;
l_processed_flag:='F';
l_error_message :=
l_error_message
|| 'Item Not Present In Oracle'
|| p_org_id
|| ' Organization '
|| l_error_delimiter;
DBMS_OUTPUT.put_line ('inventory_item_id - l_seg_count ' ||l_seg_count||'-'||l_processed_flag );
WHEN OTHERS
THEN
l_seg_count := -1;
l_processed_flag:='F';
l_error_message :=
l_error_message
|| 'Item Not Present In Oracle'
|| p_org_id
|| ' Organization '
|| l_error_delimiter;
END ;
IF p_load_code = 'Insert'
THEN
IF l_organization_id != l_master_org_id
THEN
BEGIN
SELECT COUNT (1)
INTO l_org_item_count
FROM apps.mtl_system_items_b msi
WHERE msi.organization_id = l_master_org_id
AND msi.segment1 = UPPER (recitem_data.segment1);
EXCEPTION
WHEN NO_DATA_FOUND
THEN
l_org_item_count := 0;
DBMS_OUTPUT.put_line ('l_org_item_count ' ||l_org_item_count||'-'||l_processed_flag );
WHEN OTHERS
THEN
l_org_item_count := -1;
END ;
IF l_org_item_count = -1
THEN
l_processed_flag := 'F';
l_error_message :=
l_error_message
|| 'Exception - Checking Item in Master '
|| l_error_delimiter;
ELSIF l_org_item_count = 0
THEN
l_processed_flag := 'F';
l_error_message :=
l_error_message
|| 'Item Does Not Exist in Master '
|| l_error_delimiter;
END IF;
END IF;
END IF;
DBMS_OUTPUT.put_line ( 'CheckPoint: Iteminmasterorg'
|| l_org_item_count
IF (recitem_data.description IS NULL AND p_load_code = 'Insert')
THEN
l_processed_flag := 'F';
l_error_message :=
l_error_message || 'Description is NULL' || l_error_delimiter;
END IF;
IF (recitem_data.sales_account IS NOT NULL)
THEN
BEGIN
SELECT code_combination_id
INTO l_sales_account
FROM gl_code_combinations_kfv
WHERE code_combination_id= recitem_data.sales_account;
EXCEPTION
WHEN NO_DATA_FOUND
THEN
-- l_processed_flag := 'F'; --QUESTION
l_error_message :=
l_error_message
|| 'Sales Account Not Setup '
|| l_error_delimiter;
DBMS_OUTPUT.put_line ( 'CheckPoint: Salesacct_Validation'
|| l_sales_account||'-'||l_processed_flag
WHEN OTHERS
THEN
l_processed_flag := 'F';
l_error_message :=
l_error_message
|| 'Sales Account Exception '
|| SQLERRM
|| l_error_delimiter;
DBMS_OUTPUT.put_line ( 'CheckPoint: Salesacct_Validation'
|| l_sales_account||'-'||l_processed_flag
END ;
END IF;
IF (recitem_data.cost_of_sales_account IS NOT NULL)
THEN
BEGIN
SELECT code_combination_id
INTO l_cost_of_sales_account
FROM gl_code_combinations_kfv
WHERE code_combination_id =
recitem_data.cost_of_sales_account;
EXCEPTION
WHEN NO_DATA_FOUND
THEN
l_processed_flag := 'F';
l_error_message :=
l_error_message
|| 'COGS Account Not Setup '
|| l_error_delimiter;
DBMS_OUTPUT.put_line ( 'l_cost_of_sales_account'
|| l_cost_of_sales_account||'-'||l_processed_flag
WHEN OTHERS
THEN
l_processed_flag := 'F';
l_error_message :=
l_error_message
|| 'COGS Account Exception '
|| SQLERRM
|| l_error_delimiter;
DBMS_OUTPUT.put_line ( 'l_cost_of_sales_account'
|| l_cost_of_sales_account||'-'||l_processed_flag
END check_cogs_account;
END IF;
BEGIN
select distinct organization_code
into l_ref_org_code
from org_organization_definitions
where organization_id = recitem_data.ref_organization_id ;
EXCEPTION
WHEN OTHERS THEN
l_ref_org_code:= NULL;
l_processed_flag:='F';
l_error_message :=
l_error_message
|| 'Reference Org Not Present'
|| p_org_id
|| ' Organization '
|| l_error_delimiter ;
DBMS_OUTPUT.put_line ('l_ref_org_code'|| l_ref_org_code||'-'||l_processed_flag);
END;
BEGIN
select concatenated_segments
into l_ref_inventory_item_code
from mtl_system_items_kfv
where inventory_item_id = recitem_data.ref_inventory_item_id
and organization_id = recitem_data.ref_organization_id ;
EXCEPTION
WHEN OTHERS THEN
l_ref_inventory_item_code :=NULL;
l_processed_flag:='F';
l_error_message :=
l_error_message
|| 'Reference Item Not Present'
|| p_org_id
|| ' Organization '
|| l_error_delimiter;
DBMS_OUTPUT.put_line ('l_ref_inventory_item_code'|| l_ref_inventory_item_code||'-'||l_processed_flag);
END;
IF (l_master_org = 'N' AND p_load_code = 'Insert')
THEN
BEGIN
SELECT count(*)
INTO l_description_count
FROM mtl_system_items_tl
WHERE organization_id = l_master_org_id
AND inventory_item_id =
(SELECT inventory_item_id
FROM mtl_system_items_b
WHERE organization_id = l_master_org_id
AND segment1 = recitem_data.segment1);
END ;
IF l_description_count > 0 THEN
l_processed_flag:='F';
l_error_message :=
l_error_message
|| 'Item Description Not Present'
|| p_org_id
|| ' Organization '
|| l_error_delimiter;
END IF;
END IF;
IF l_processed_flag = 'S'
THEN
BEGIN
INSERT INTO mtl_system_items_interface
(organization_id,
segment1,
description,
ITEM_TYPE,
COST_OF_SALES_ACCOUNT,
SALES_ACCOUNT,
attribute_category,
set_process_id,
transaction_type,
process_flag,
copy_organization_code,
copy_item_number,
creation_date,
created_by,
last_updated_by,
last_update_date
--attribute_category
, attribute1
, attribute2
,attribute3
,attribute4
,attribute5
,attribute6
,attribute7
,attribute8
,attribute9
,attribute10
,attribute11
,attribute12
,attribute13
,attribute14
,attribute15
,global_attribute10
VALUES (l_organization_id,
recitem_data.segment1,
recitem_data.description,
recitem_data.ITEM_TYPE,
recitem_data.COST_OF_SALES_ACCOUNT,
recitem_data.SALES_ACCOUNT,
recitem_data.ATTRIBUTE_CATEGORY,
l_set_process_id,
l_transaction_type, --,l_transaction_type
l_process_flag,
l_ref_org_code,
l_ref_inventory_item_code,
SYSDATE, l_user_id,
l_user_id, SYSDATE
-- l_attribute_category
,recitem_data.attribute1
,recitem_data.attribute2
,recitem_data.attribute3
,recitem_data.attribute4
,recitem_data.attribute5
,recitem_data.attribute6
,recitem_data.attribute7
, recitem_data.attribute8
,recitem_data.attribute9
, recitem_data.attribute10
,recitem_data.attribute11
,recitem_data.attribute12
,recitem_data.attribute13
,recitem_data.attribute14
,recitem_data.attribute15
, substr(recitem_data.global_attribute10,1,length(recitem_data.global_attribute10)-1) --recitem_data.global_attribute10
l_insert_count := l_insert_count + 1;
/* IF (l_insert_count = NVL (p_commit_point, 10000))
THEN
-- l_set_process_id := l_set_process_id + 10; -- REVERT BACK CHANGE
l_insert_count := 0;
END IF;
EXCEPTION
WHEN OTHERS
THEN
l_processed_flag := 'F';
l_error_message :=
l_error_message
|| 'Error in Inserting Item '
|| SQLERRM
|| l_error_delimiter;
END ;
COMMIT;
DBMS_OUTPUT.put_line ('CheckPoint: Insertion Completed in Intfacetable');
END IF;
BEGIN
UPDATE xxx_inv_system_items_stg
SET status_flag = l_processed_flag,
error_message = l_error_message
WHERE segment1 = recitem_data.segment1
AND organization_id = recitem_data.organization_id
AND status_flag IS NULL;
COMMIT;
DBMS_OUTPUT.put_line ('Error Message'||l_error_message);
EXCEPTION
WHEN OTHERS
THEN
fnd_file.put_line (fnd_file.LOG,
'Error:Updating Item:'
|| SQLCODE
|| '-'
|| SQLERRM
END;
END LOOP; --FOR recitem_data IN cur_item_master
DBMS_OUTPUT.put_line ( 'Validation Ends At :'
|| TO_CHAR (SYSDATE, 'DD-MON-YYYY HH24:MI:SS')
DBMS_OUTPUT.put_line ('Number of records inserted into Table Successfully -->'|| l_insert_count);
END;
END xxxx_inv_items_conv_pkg;
Edited by: 896170 on Apr 12, 2013 11:58 PMIssue got solved... changed the PO line amount as:
<?xdoxslt:set_variable($_XDOCTX,'line_amt',xdoxslt:to_number(LINE_AMOUNT))?>
Reference :Syntax for 'to_number'
Regards
Manikanta Panigrahi -
Performance Issue for BI system
Hello,
We are facing performance issues for BI System. Its a preproductive system and its performance is degrading badly everyday. I was checking system came to know program buffer hit ratio is increaasing everyday due to high Swaps. So asked to change the parameter abap/buffersize which was 300Mb to 500Mb. But still no major improvement is found in the system.
There is 16GB Ram available and Server is HP-UX and with Netweaver2004s with Oracle 10.2.0.4.0 installed in it.
The Main problem is while running a report or creating a query is taking way too long time.
Kindly help me.Hello SIva,
Thanks for your reply but i have checked ST02 and ST03 and also SM50 and its normal
we are having 9 dialog processes, 3 Background , 2 Update and 1 spool.
No one is using the system currently but in ST02 i can see the swaps are in red.
Buffer HitRatio % Alloc. KB Freesp. KB % Free Sp. Dir. Size FreeDirEnt % Free Dir Swaps DB Accs
Nametab (NTAB) 0
Table definition 99,60 6.798 20.000 29.532 153.221
Field definition 99,82 31.562 784 2,61 20.000 6.222 31,11 17.246 41.248
Short NTAB 99,94 3.625 2.446 81,53 5.000 2.801 56,02 0 2.254
Initial records 73,95 6.625 998 16,63 5.000 690 13,80 40.069 49.528
0
boldprogram 97,66 300.000 1.074 0,38 75.000 67.177 89,57 219.665 725.703bold
CUA 99,75 3.000 875 36,29 1.500 1.401 93,40 55.277 2.497
Screen 99,80 4.297 1.365 33,35 2.000 1.811 90,55 119 3.214
Calendar 100,00 488 361 75,52 200 42 21,00 0 158
OTR 100,00 4.096 3.313 100,00 2.000 2.000 100,00 0
0
Tables 0
Generic Key 99,17 29.297 1.450 5,23 5.000 350 7,00 2.219 3.085.633
Single record 99,43 10.000 1.907 19,41 500 344 68,80 39 467.978
0
Export/import 82,75 4.096 43 1,30 2.000 662 33,10 137.208
Exp./ Imp. SHM 89,83 4.096 438 13,22 2.000 1.482 74,10 0
SAP Memory Curr.Use % CurUse[KB] MaxUse[KB] In Mem[KB] OnDisk[KB] SAPCurCach HitRatio %
Roll area 2,22 5.832 22.856 131.072 131.072 IDs 96,61
Page area 1,08 2.832 24.144 65.536 196.608 Statement 79,00
Extended memory 22,90 958.464 1.929.216 4.186.112 0 0,00
Heap memory 0 0 1.473.767 0 0,00
Call Stati HitRatio % ABAP/4 Req ABAP Fails DBTotCalls AvTime[ms] DBRowsAff.
Select single 88,59 63.073.369 5.817.659 4.322.263 0 57.255.710
Select 72,68 284.080.387 0 13.718.442 0 32.199.124
Insert 0,00 151.955 5.458 166.159 0 323.725
Update 0,00 378.161 97.884 395.814 0 486.880
Delete 0,00 389.398 332.619 415.562 0 244.495
Edited by: Srikanth Sunkara on May 12, 2011 11:50 AM -
Hi,
I would like to enquire is there anyway that i can improve the performance for table BKPF from the ABAP code point of view.
Because we have customise one program to generate report for the asset master listing.
one of the select statement are show as below:
SELECT SINGLE * FROM BKPF WHERE BUKRS = ANEP-BUKRS
AND GJAHR = ANEP-GJAHR
AND AWKEY = AWKEYUS.
I would like to know how it different from the select statemene below:
SELECT SINGLE * FROM BKPF INTO CORRESPONDING FIELDS OF T_BKPF
WHERE
BUKRS = ANEP-BUKRS
AND GJAHR = ANEP-GJAHR
AND AWKEY = AWKEY.
Which of the select statements above can enhance report,because currently we have face quite bad issue on this report.
Can i post the ABAP code on this forum.
Hope someone can help me on this. thank you.Hi,
As much as possible use the primary keys of BKPF which is BUKRS, BELNR and GJAHR. Also, select only the records which are needed so to increase performance. Please look at the code below:
DATA: lv_age_of_rec TYPE p.
FIELD-SYMBOLS: <fs_final> LIKE LINE OF it_final.
LOOP AT it_final ASSIGNING <fs_final>.
get records from BKPF
SELECT SINGLE bukrs belnr gjahr budat bldat xblnr bktxt FROM bkpf
INTO (bkpf-bukrs, bkpf-belnr, bkpf-gjahr, <fs_final>-budat,
<fs_final>-bldat, <fs_final>-xblnr, <fs_final>-bktxt)
WHERE bukrs = <fs_final>-bukrs
AND belnr = <fs_final>-belnr
AND gjahr = <fs_final>-gjahr.
if <fs_final>-shkzg = 'H', multiply dmbtr(amount in local currency)
by negative 1
IF <fs_final>-shkzg = 'H'.
<fs_final>-dmbtr = <fs_final>-dmbtr * -1.
ENDIF.
combine company code(bukrs), accounting document number(belnr),
fiscal year(gjahr) and line item(buzei) to get long text.
CONCATENATE: <fs_final>-bukrs <fs_final>-belnr
<fs_final>-gjahr <fs_final>-buzei
INTO it_thead-tdname.
CALL FUNCTION 'READ_TEXT'
EXPORTING
client = sy-mandt
id = '0001'
language = sy-langu
name = it_thead-tdname
object = 'DOC_ITEM'
ARCHIVE_HANDLE = 0
LOCAL_CAT = ' '
IMPORTING
HEADER =
TABLES
lines = it_lines
EXCEPTIONS
id = 1
language = 2
name = 3
not_found = 4
object = 5
reference_check = 6
wrong_access_to_archive = 7
OTHERS = 8.
IF sy-subrc <> 0.
MESSAGE ID sy-msgid TYPE sy-msgty NUMBER sy-msgno
WITH sy-msgv1 sy-msgv2 sy-msgv3 sy-msgv4.
ENDIF.
if successful, split long text into start and end date
IF sy-subrc = 0.
READ TABLE it_lines TRANSPORTING tdline.
IF sy-subrc = 0.
SPLIT it_lines-tdline AT '-' INTO
<fs_final>-s_dat <fs_final>-e_dat.
ENDIF.
ENDIF.
get vendor name from LFA1
SELECT SINGLE name1 FROM lfa1
INTO <fs_final>-name1
WHERE lifnr = <fs_final>-lifnr.
lv_age_of_rec = p_budat - <fs_final>-budat.
condition for age of deposits
IF lv_age_of_rec <= 30.
<fs_final>-amount1 = <fs_final>-dmbtr.
ELSEIF lv_age_of_rec > 30 AND lv_age_of_rec <= 60.
<fs_final>-amount2 = <fs_final>-dmbtr.
ELSEIF lv_age_of_rec > 60 AND lv_age_of_rec <= 90.
<fs_final>-amount3 = <fs_final>-dmbtr.
ELSEIF lv_age_of_rec > 90 AND lv_age_of_rec <= 120.
<fs_final>-amount4 = <fs_final>-dmbtr.
ELSEIF lv_age_of_rec > 120 AND lv_age_of_rec <= 180.
<fs_final>-amount5 = <fs_final>-dmbtr.
ELSEIF lv_age_of_rec > 180.
<fs_final>-amount6 = <fs_final>-dmbtr.
ENDIF.
CLEAR: bkpf, it_lines-tdline, lv_age_of_rec.
ENDLOOP.
Hope this helps...
P.S. Please award points for useful answers. -
Hi Friends
I am having performance issue for this function-module(HR_TIM_REPORT_ABSENCE_DATA) and one my client got over 8 thousend employees . This function-module taking forever to read the data. is there any other function-module to read the absences data IT2001 .
I did use like this .if i take out this F.M 'HR_TIM_REPORT_ABSENCE_DATA_INI' its not working other Function-module.please Suggest me .
call function 'HR_TIM_REPORT_ABSENCE_DATA_INI'
exporting "Publishing to global memory
option_string = option_s "string of sel org fields
trig_string = trig_s "string of req data
alemp_flag = sw_alemp "all employee req
infot_flag = space "split per IT neccessary
sel_modus = sw_apa
importing
org_num = fdpos_lines "number of sel org fields
tables
fieldtab = fdtab "all org fields
field_sel = fieldnametab_m. "sel org fields
To Read all infotypes from Absences type.
RP_READ_ALL_TIME_ITY PN-BEGDA PN-ENDDA.
central function unit to provide internal tables: abse orgs empl
call function 'HR_TIM_REPORT_ABSENCE_DATA'
exporting
pernr = pernr-pernr
begda = pn-begda
endda = pn-endda
IMPORTING
SUBRC = SUBRC_RTA
tables
absences = absences_01
org_fields = orgs
emp_fields = empl
REFTAB =
APLTAB =
awart_sel_p = awart_s[]
awart_sel_a = awart_s[]
abstp_sel = abstp_s[]
i0000 = p0000
i0001 = p0001
i0002 = p0002
i0007 = p0007
i2001 = p2001
i2002 = p2002
i2003 = p2003.
Thanks & Regards
Reddyguessing will not help you much, check with SE30 to get a better insight
SE30
The ABAP Runtime Trace (SE30) - Quick and Easy
what is the total time, what are the Top 10 in the hitlist.
Siegfried -
Sub : Report generation for issue for production_Using sql
Dear members,
I am generating a report for issue for the production.In that i want to retrieve planned,completed quantity and availiable using sql query for a period of one year.Anyone pls help me in this regard to retrieve the above described fields.
Thanks in advance,
Regards,
Venkatesh.RVenkatesh,
You can find a list of the tables used in the Business One database in the SAP Business One SDK Help Center Documentation under "Customization Tools".
Eddy -
Material stock received and issued for a given period of time
HOW to get the material stock received and issued for a given period of time including the open orders.
if there is any BAPI Available then please tell me. or give me the table relations thaks.
thanks inadvancehi friend,
Why don't you try using a TIMER. Try using this code
Timer timer = new Timer((TIMER), new ActionListener()
public void actionPerformed(ActionEvent ae)
// perform your task here...
timer.setInitialDelay(TIMER);
timer.setRepeats(true);
timer.start();
I think this will work fine.
Bye,
Ravi. -
Create UDF for table not in the List of tables
Hi all,
I know that my question maybe easy or been asked before, but I couldn't find the answer.
To create a UDF in SAP B1 version 9.0 you should go Tools -> Customization Tools -> User-Defined Fields - Management...
which is ok and working perfect. but my question is:
If I want to create UDF for a table not in the list of tables there what should I do? I need to create 2 UDFs for table OMRC [Manufacturers], and can't find it in master data tables.
anyone had this issue before?
EDIT : Is it good to add the field by using sql server? I know it's possible, but will it be visible in SAP
thank you
Message was edited by: Samira HarounHi Samira,
There is noit a simple link for this, I advise you to study the documentation for TB1300 SBO Development Certification.
Ypu should also have knowledge of .net, and C# or VB, because you have to make a small program/addon to add the fields
Kind regards
Ad Kerremans -
Error when executing statement for table/stored proc
Hi All,
I am getting this error when executing IDOC to JDBC (Stored Procedure) Scenario.
In my stored procedure I have three insert statements to insert rows in to 3 tables.
This stored procedure is working fine for two insert statements i.e,
For this I have created data type for stored procedure with 10 elements and executed the scenario and was successfully running.
when I added 3rd insert statement to stored procedure ie., when i added 5 more elements to the datatype (totally 15 elements) it starts giving the bellow error in Message Monitoring.
<i><b>Exception caught by adapter framework: Error processing request in sax parser: Error when executing statement for table/stored proc. 'COGRP_TMP_PROC_1' (structure 'Statements'): java.sql.SQLException: General error</b></i>
<i><b>Delivery of the message to the application using connection JDBC_http://sap.com/xi/XI/System failed, due to: com.sap.aii.af.ra.ms.api.RecoverableException: Error processing request in sax parser: Error when executing statement for table/stored proc. 'COGRP_TMP_PROC_1' (structure 'Statements'): java.sql.SQLException: General error</b></i>
Note:- I have run the stored procedure with three insert statements in Sql Server, and also by calling an external program also, and was working fine.
<i><b> Note : Is there any structure needs to be follow when working with IDOC to Stored procedure.</b></i>
I am struck up with the error, can any body resolve this issue.
Thanks in Advance,
MurthyHi narasimha,
This seems to be any error due to incorrect query formation.In your receiver jdbc channel set the parameter logSQLstatement = true.you can find this parameter in the advanced mode. Using this parameter you will be able to see the sql query which is generated at runtime in the audit log in RWB.
Regards,
Pragati -
Error while doing Good Issue for Production Order using BAPI
Hi All,
I am facing an error like 'u2018Content of order 1011907: MDT218AJ10 transferred to interface (IMSEG): T-86410-71".
I have written the code as below. Please let me know what is missing when using the BAPI 'BAPI_GOODSMVT_CREATE'. What is the cause of this error ?
*Action in Transaction (GM_CODE)
*GM Code for Goods Issue for Production Order is 03
gs_gmcode-gm_code = '03'.
*Header Data
*Posting date
gs_header-pstng_date = sy-datum.
*Document date
gs_header-doc_date = sy-datum.
*Item Data
*Material
gs_item-material = zptp_s_rf_migo_261-matnr1.
*Movement Type
gs_item-move_type = '261'.
*Movement Indicator
gs_item-mvt_ind = 'F'.
*Stock Type
gs_item-stck_type = 'F'.
*Plant
gs_item-plant = gv_plant.
*Storage Location
gs_item-stge_loc = gv_str_loc.
*Quantity
gs_item-entry_qnt = zptp_s_rf_migo_261-menge2.
*Unit
gs_item-entry_uom = gv_uom.
*ISO code for unit of measurement
gs_item-entry_uom_iso = gv_uom.
*Order Number
CALL FUNCTION 'CONVERSION_EXIT_ALPHA_INPUT'
EXPORTING
input = zptp_s_rf_migo_261-aufnr
IMPORTING
output = gs_item-orderid.
*Reservation Number
gs_item-reserv_no = gv_resv_num.
*Reservation Item
gs_item-res_item = gv_resv_itm.
*Reservation Type
gs_item-res_type = gv_resv_type.
APPEND gs_item TO gt_item.
Calling BAPI_GOODSMVT_CREATE to create the Material Document Number
CALL FUNCTION 'BAPI_GOODSMVT_CREATE'
EXPORTING
goodsmvt_header = gs_header
goodsmvt_code = gs_gmcode
IMPORTING
goodsmvt_headret = gs_headret
TABLES
goodsmvt_item = gt_item
goodsmvt_serialnumber = gt_serial
return = gt_return.
Thanks in Advance.hi,
did you look at message ?
System says, there are differences between the interface data and the order data. It can be anything. I think you should check
data in the interface .
this is the long explanation of your message :
Diagnosis
When calling the function module MB_CREATE_GOODS_MOVEMENT or the BAPI GoodsMovement.CreateFromData (BAPI_GOODSMVT_CREATE) to post a goods receipt for a production order, there are differences between the interface data and the order data.
Example: The order was created for plant 0001, but plant 0002 is passed on in the interface.
The system checks this for the material and the order item.
System response
Due to this difference, the system cannot post the goods receipt.
Procedure
Check the data in the interface (IMSEG-WERKS, IMSEG-AUFNR). If necessary, correct the plant or the order number in the interface.
<< Moderator message - Point begging removed >>
Edited by: Rob Burbank on Feb 6, 2012 11:24 AM -
BAPI to reverse Goods Issue for movement type 601
Hi Everyone,
Does anyone know of any BAPI that could be use to reverse Goods Issue for Movement type 601?
I tried using BDC of transaction VL09 and was able to reverse the GI document successfully but the return message type was 'E' with unreadable message -
Tabelle 'E' enth#t keinen Eintrag f# 'Ch 004 &'
When I tried using BAPI_GOODSMVT_CANCEL, I get the error message 'E M7 130 Material document cannot be processed'.
Best Regards,
Junwenhi, Junwen!
the following code works pretty well:
fp_vbeln = vbeln_val.
fp_budat = budat_val.
fp_tcode = 'VL09'.
fp_vbtyp = 'J'.
CALL FUNCTION 'WS_REVERSE_GOODS_ISSUE'
EXPORTING
i_vbeln = fp_vbeln
i_budat = fp_budat
I_COUNT =
I_MBLNR =
i_tcode = fp_tcode
i_vbtyp = fp_vbtyp
TABLES
t_mesg = it_mesg
EXCEPTIONS
error_reverse_goods_issue = 1
OTHERS = 2.
luck. -
Dml error logging for tables in 10.2.0.5
Hi experts,
I have problems loading error records into the shadow table specified in the configuration window for tables. Upon executing the mapping, the execution results show warnings with the error records but these records were not moved to the shadow/error table.
The actual scenario is: I specified a non-null data rule on the supplier_code column in the supplier table. Inside the mapping where I used this supplier table, I choose the option "Move to error" for this non-null data rule. Upon executing, it seems that owb treats these as warnings and not errors and thus did not propagate them to the error table. Anyone has any suggestion as to how to make use of the error tables in owb?DML error logging is generated for set-based PL/SQL mappings if the following conditions are satisfied:
1. the Error table name property is set for the operator (table/view/mv)
2. the PL/SQL Generated Mode of the module that contains the mapping is set to 10gR2 and above or Default.
If the value is set to Default, ensure that location associated with the module has the Version set to 10.2 or above.
When you use a data object in a mapping, the Error Table Name property for this data object is derived from the shadow table name property of the data object . If you modify the error table name of a data object (using the shadow table name property), you must synchronize all the operators bound to this data object.
If you are still facing the issue then provide your email and I can send a simple example of data rule mapping in OWB 10.2.0.5
Sutirtha -
Looking for table that links a PM Reservation to a MM Purchase Requisition
Looking for table that links a PM Reservation to a MM Purchase Requisition
Hi,
Typically the way most SAP systems are configured, there are two scenarios here:
1. The component reserved in the PM order is item category 'N'. This is a non inventory item and must be directly procured for consumption against the PM order at the point of goods receipt. In this case no reservation is created and instead a requisition is directly created (in table EBAN) and the requisition is account assigned directly to the PM order (in table EBKN - field AUFNR).
2. The component reserved in the PM order is item category 'L'. In this case no requisition is directly created, instead a reservation is created against the item in stock (in table RESB). If there is sufficient stock of the item already then the item is consumed when it is goods issued to the PM order from stock using MIGO and there is no requisition created. In the event that there is not sufficient stock of the item for the reservations that exist, when MRP is run, a requisition will be created to replenish the stock, but this requisition will not be assigned to a specific PM order as it could be replenishing stock of the item for several reservations which are all for different orders. So in this scenario there is no direct link from the reservation generated by the PM order to the requisition. -
Hi Experts,
I'm implementing SAP note 1990492 which requires manual implementation. Implementation includes modifying standard tables (i.e. append
the structure FIEU_S_APP_H to table FIEUD_FIDOC_H). After this I've adjusted the table in SE14 (Database Utility). I've done checks in SE14 and it shows the table is consistent.
But during DB02 -> Space folder -> Single table analysis -> Input table name -> Indexes tab -> Upon clicking statistics, there is a warning "Column statistics not found for table".
Our basis team is implementing an Add-On in the development system related to RWD Context Sensitive Help. They cannot proceed due to the following inconsistencies found in the table.
Screenshot error from the activity:
Screenshot from DB02:
I'm an ABAP developer and have no other ideas on what to do. Thanks in Advanced.Hi All,
We were able to fix the issue through the following:
1. Call transaction
SE14.
2. Enter the name of
the table and choose "Edit".
3. Choose
"Indexes".
4. Select the index
and choose "Choose (F2)".
5. If you choose
"Activate and adjust", the system creates the index again and it is
consistent.
6. Check the object
log of this activation.
7. If an error
occurs, eliminate the cause and reactivate the index. -
ECC to CRM Mapping Issue for vendor data
Hi,
I am facing an issue for replicating vendor data from ECC to CRM. One of the vendor is not confirmed at ECC side and one vendor's time zone is not maintain in the master of time zone in CRM side. This may be the issue.
But Where exact we can see that mapping of the tables of ECC and CRM. So in future we should maintain mandatory data based on mapping to avoid BDOC failure.Hello Rahul ,
The field (MARA-BISMT) is not used in CRM system. If you want this
field to be maintained in CRM as well, and to be transferred from R/3
to CRM you must enhance the standard by customer extensions.
The procedure for customer enhancements for Download from R/3
to CRM is described in the following document:
SAPNet, alias crm, > Media Library > Documentation >
Key Capabilities > Master Data > CRM Product: Customer
Enhancements for Download/Upload
For further information about Product Master enchancements and how to
find techncical documentation about it please refer to the attached
Note 428989.
Thanks & regards,
Krishnen
Maybe you are looking for
-
Hiding Fields with the same name
I have multiple fields across a form with the same name TxtName#1 TxtName#2 TxtName#3..... TxtName#24 They are all share the same name because they should all have the same data. I want to be able to hide some of these fields, based on the number ent
-
I am unable to download the JDK 1.6 32-bit release #17. The sun download manager says "there is something wrong, contact support" and I am completely unable to download it and there is no message to help me otherwise. I also tried with Firefox and wi
-
Hi, Can anybody please let me know how to delete the Workflow items in ECC 6.0? What is the TC or any other process/ program? Your help and time will be really appreciate. Thanks & Regards, Niki Shah.
-
omeone meet the problem, I am not abble install mac OS 10.6 snow leopard on intel based machine, (intel core 2 duo, 2,8 ghz, 4GB RAM, 320 GB HDD, OSX 10.5.8) system every time wrote "OS X snow leopard cannot be install on this machine" please help, M
-
sparsebundle could not be created error 57 - can the developer who wrote this message please tell me whey I get it. Time Machine doe snot work at all.... And has not done for almost a year (yawn). fed up.