Duplicate Item in Details Block
Dear Expert,
I written some code for checking of the same item in detail block, when I am using keyboard it is runing ok, but when I nevigate the same from mouse to another item, it will not check the duplicate item, my problem is when I move the mouse from one filed to another my Item-Code will be validate every time when I leave the mouse from One Item to another.
Please give me your expert adive.
s mishra
Hi Mark,
Actually this my code but it doesn't work.....
if :slcl.bulk_question_answer = 'N' then
Set_Item_Instance_Property('SLCL.BULK_ERROR_DETAILS', CURRENT_RECORD, UPDATE_ALLOWED,PROPERTY_TRUE);
elsif :slcl.bulk_question_answer = 'Y' then
Set_Item_Instance_Property('SLCL.BULK_ERROR_DETAILS', CURRENT_RECORD, UPDATE_ALLOWED, PROPERTY_FALSE);
:SLCL.BULK_ERROR_DETAILS := '';
end if;
Please remember I put this code in the when-checkbox-changed trigger the default if YES.
Any further advice or idea are greatly appreciated....
Thanks.
Regards,
Jun
Similar Messages
-
How to prevent duplicate entry in Details block
Dear All
I am using Forms 10g.
I have a detail block.
There is a column called Ip_Address.
There i want to prevent duplicate entry .
How can i do this ?hey i have a requirement that to restrict duplicate entry in both block(both multi record).the blocks are DEPT(MATER)
EMP(DETAIL)
the associated fieds in master block DEPT.DEPT_NO,in detail EMP.EMP_ID .
I have done' Kevin D Clarke’s calculated item ' both in master and detail block
its working fine for master block but in case of detail block its only respond to the current session(i.e. if the new value is inserted or save it will restrict another record to be inserted of that last record's value),it does not restrict duplicate value enter ,checking with other existing records(which are saved in earlier session,though after query it is shown on the form)
can anyone guide me why its not working -
How to validate non commited items in detail block.
Hi All,
I have a Detail block with 10 rows and 2 columns. the select of items is based on LOV. If i select One item in one row, then the user cannot select the same item again in other rows. either I need to not show the selected item in LOV or I need to raise form trigger failure and ask him to change values. This is to be done before commiting the items. Can anyone, please suggest me some way or triggers I can use.
Thank you.If the process is done by a key-commit trigger or a when button-pressed trigger then it is simple . But if there is no such trigger then you should create it because it is more convenient to make controls inside key-commit rather than in pre-update or pre-insert because these triggers do not accept restricted built-ins.
To validate your items just loop through the list of records and compare the values to the one you are on. Then if there are no match then you go to the next record to search for.
Something like this :
declare
v_current_value_to_compare varchar2(100);
v_record pls_integer;
begin
go_block('detail_block_name');
first_record;
while :system.last_record = 'FALSE' loop
loop
next_record;
v_current_value_to_compare := :detail_block_name.item_name;
v_record := :system.trigger_record;
if :detail_block_name.item_name = v_current_value_to_compare then
-- make your control here
end if;
exit when :system.last_record = 'TRUE';
end loop;
go_record(v_record);
end loop;
end; -
Blob dictates duplicate items in details section-based on supression
I was orginally having issues with my supression on this. I think I have it figured out. But..
I have parts that I request that sometimes have drawing with them. I created a table in Access with 3 columns - number, .bitmap., nameof drawing
I brought this table in. I place 1 drawing in the reports and this changes based upon the Paramter{drawing.id} that I have beeing selected. The problem is that I get duplicate fields produced in my details section. Now the blob sits in my report footer C. Can anyone suggest why or help with why my data is duplicating in my details section?
all items in my details section are duplicating
here is my sql if it helps:
max40385
SELECT "PR"."PRNUM", "COMPANIES"."NAME",
"COMPANIES"."ADDRESS1", "COMPANIES"."ADDRESS2",
"COMPANIES"."ADDRESS3", "COMPANIES"."ADDRESS4",
"COMPANIES"."PHONE", "COMPANIES"."FAX", "PR"."SHIPTOATTN",
"COMPANIES_1"."NAME", "COMPANIES_1"."ADDRESS1",
"COMPANIES_1"."ADDRESS2", "COMPANIES_1"."ADDRESS3",
"COMPANIES_1"."ADDRESS4", "PR"."ISSUEDATE", "PR"."CONTACT",
"PR"."REQUIREDDATE", "PRLINE"."ITEMNUM", "PRLINE"."ORDERUNIT",
"PRLINE"."ORDERQTY", "PRLINE"."DESCRIPTION",
"PRLINE"."UNITCOST", "PRLINE"."LINECOST",
"PRLINE"."PONUM", "LONGDESCRIPTION"."LDTEXT"
FROM "MAXIMO"."PR" "PR", "MAXIMO"."COMPANIES" "COMPANIES",
"MAXIMO"."COMPANIES" "COMPANIES_1", "MAXIMO"."PRLINE"
"PRLINE", "MAXIMO"."LONGDESCRIPTION" "LONGDESCRIPTION"
WHERE ("PR"."VENDOR"="COMPANIES"."COMPANY") AND ("PR"."SHIPTO"="COMPANIES_1"."COMPANY") AND ("PR"."PRNUM"="PRLINE"."PRNUM") AND ("PRLINE"."LDKEY"="LONGDESCRIPTION"."LDKEY" ) AND "PR"."PRNUM"='25334'
C:\Documents and Settings\kpowell\My Documents\Drawings.mdb
SELECT `Parts_Drawings`.`ID`
FROM `Parts Drawings` `Parts_Drawings`
Edit here-
Ok - I have 3 parameters
1- sets pr field ={?pr.num}
2.- mandatory answer determines a supress on fields(blob, and section blob is in) - supress statment is - {?yes/no}=no - for both areas
the parameter is {?yes/no}
3. sets up the blob to put into the document base upon a field in the table
that I made in access (based upon column 1 in acces table) - user makese selection based upon yes or no above if no then just leave it as ......
The wired thing is when I have multiple line items in my Pr (purchase request)
if I included a drawing there are no duplicate details
If I dont include the blob (meaning I supress it based upon the answer in my parameter - all items in the details section duplicate ( i suppress these if duplicated but it leaves huge gaps in my report.... any help would be great!
Ok i figured it out. In my access table i created the 1st entry and left the bitmap entry empty and put a descrition of not needed. I selected this as my drawing in my 3rd parameter and it satifies the report as thinking it has a drawing in it even though there is not. So all my duplicate line item in my details section disappear. thanks all
Edited by: max274 on Mar 27, 2009 4:21 PM
Edited by: max274 on Mar 27, 2009 4:29 PM
Edited by: max274 on Mar 27, 2009 6:29 PMI found the answer see my previous post in this.
-
Oracle Forms : Master Detail : Cannot query detail block
MY requirement is: when user enters records in master block, the corresponding records should be displayed in the detail block. (Detail block is just for viewing).
Master block is a database block based on a custom table. All fields are enetereble in this block.
Detail block is a a database block based on view which is built joining the custom table(on which master block is built) & a standard table. None of the fields in detail block are editable. they are just display only. For detail block, set the Key Mode=Non-Updatable, Enabled a field as Primary Key.
I have created a relation between the 2 blocks. (Deferred=No, AutoQuery=No, Delete Record Behaviour=Isolated.). There is a join between master table & this view.
But when I enter record in master block & save. the detail block records are not displayed. (Message : No Navigable Items in Detail Block).
Yes, there are no navigable items in detail block, because its just for viewing purpose. How can this be achieved.
Thanks,
NaveenThanks for your inputs. I got the solution for this. Earlier all items in the block were DISPLAY_ONLY. Now, I have selected them as TEXT_ITEMS (even though they are not updatable). It is working fine now. Thanks.
-
Dear Experts,
I've a master detail form.
I detail form there is no primary key. When it is executed the following error displayed :
FRM-30100: Block must have at least one primary key item.
Block: ASSETS_ISSUE_DTL
Form: FORM_ASSETS_ISSUE_DTL
What to do?I got it.
Create a dummy text box item in detail block.
Write rowid in column name.
Set Primary key YES.
Thanks. -
Avoid duplicates in detail-block
I have a master-detail form, the detail block have item, qty & rate. only 1 item_code is allowed to b entered per invoice, purchased at different rates. what i want to acheive is;
1) prevent user from entering duplicate item-code, if the detail record goes more then 1. and in case if there r more than 1 detail-record, then the new item-code shud appear the same as the item-code entered in the previous record.
B4 incorporating the above rule, i had already entered some records, thus manually taking into consideration the above rule. Later, when i tried to code the abov rule, m getting err-msg as per my triggers. what i did actually for this is;
i created a control-field m_item_code in control_block(Ctrl). NOT initialised anywhere.
then for the detail-block m using these triggers;
WHEN-REMOVE-RECORD
:dtl_blk.item_CODE = :ctrl.m_ITEM_code
WHEN-NEW-RECORD-INSTANCE
:dtl_blk.item_CODE = :ctrl.m_ITEM_code
for the field item_code triggers;
WHEN-VALIDATE-ITEM
DECLARE
CURSOR C_ITEM IS SELECT ITEM_desc
FROM item_MAST
WHERE ITEM_code = :dtl_blk.item_CODE;
BEGIN
IF :SYSTEM.CURSOR_VALUE IS NOT NULL AND
:CTRL.M_item_CODE = :dtl_blk.item_CODE THEN
OPEN C_ITEM;
FETCH C_ITEM INTO :CTRL.M_ITEM_DESC;
IF C_ITEM%NOTFOUND THEN
MESSAGE('ITEM does not exists!');
MESSAGE(' ');
RAISE FORM_TRIGGER_FAILURE;
END IF;
CLOSE C_ITEM;
ELSE
MESSAGE('Blank NOT allowed and NO different Item can be entered');
MESSAGE(' ');
RAISE FORM_TRIGGER_FAILURE;
END IF;
END;
POST-TEXT-ITEM
:ctrl.m_item_code := :det_blk.item_code;
for the OLD RECORDs (those i entered b4 writing the above triggers), the rule works fine when i query, with whatever i have coded. BUT the problem is now for the NEW detail_RECORDS. as i enter in the detail block & give value in the first item-code field the err-msg ('Blank NOT allowed and NO different Item can be entered') in WVI above, flashes for the item-code. i dont know what i have done for this rule till now is corrct?
kindly give ur comments & guide me please for the more accurate & complete approach for my rule. kindly do tell where n which code to b used or crrectedHi
You can achieve this by the use of PLSQL table create one small package in that defined your table and procdure, when user move to new record insert old record should be insert into the PLSQL table. select the value from PLSQL table to validate the next record. the ITEM_CODE must be delete from PLSQL table when user delete any ITEM_CODE from the block. -
Duplicate records for Sale Order Cycle Report(excluding item level detail)
I have posted this issue in number of forums but till today no one is able to answer it correctly.Here it is:
I need to create a report which I think most of the sd consultants have also done it.It basically covers sales order cycle without item lvel detail such as:
Sale Order No -- Sales Order Date-- Delivery No-- Delivery Date
Now as we all know ,sales orders and deliveries are connected through item table which means in the output I will get duplicate rows for the report above.For Example, if a sales order share 3 items with the delivery then we will get 3 exact duplicate rows in the report.
What can be the best solution?connecting through VBFA has alos same result as it also has item level details.
I need a good solution.This a common report and there must be some solutionHiiii,
It is standard SAP rule that system will catch the document flow (document link history) at item level.
Now your problem that you dont want to show the line item based report because of duplicacy.
Try this.
Brows table VBFA -
In screen selection select the following......
1. Subsiquent document category
2. Preceding item
select "J" in Subsiquent document category
and "000010" in Preceding item then execute the table.
Now system will not show multple line item based delivery report. so No duplicacy will be there
Regards
Shambhu Sarkar -
Item Level Validation in Detail Block
Hi Experts,
I have to Block Master and Transaction Block, When I am trying to enter the same item code in my Detail block it is accepting, but want to valid one one record will be there in my Details Block, please help me and send me some usefull code to solve this problem.
S P MishraThe easy bit would be just a validation displaying the error message in the notification area. For this, one would just loop over the rows in the report for that column, checking each. If an error was found then return false. For displaying the error message under the actual row with the problem, one would have to do this manually. You could possibly do this using a div which has a class containing "display:none" and then manually set the style of the error'ed row in your validation routine. Would be messy but I'd imagine you could get it working.
-
Query based on a non-database item in master/detail block
Hi,
I have a master/detail block, and in the master the block in have non database control item which displays the user name. Now i would want to retrive all the master/detail records based on the control item. Is that possible? How can i do it?
Any help would be appriciated.
Thanks
Kavithause the set_block_property (default_where) and the execute_query built-ins. more info in the online help
-
Duplicate a detail row to any position of a detail block
Hi,
The default performance of duplicate_record built-in is to copy the current detail row to the next created detail row.
I use this code to do this:
create_record;
duplicate_record;
How can i duplicate a row to any detail position of the detail block ?As usual, you can accomplish this task in one or more ways.
Generally, I advise against using globals.
Basically, you need to store the content of a record temporarily into a dummy record or other type of collection based upon the current record structure.
The easiest, albeit the least reusable method, would be to create a dummy block with the same structure as the block containing the record you wish to duplicate.
Using buttons, pop-up menus, etc, copy the desired record from the source table to the dummy table and back. This target record need not be a new record depending upon your requirements. In any case, be aware of unique value and other constraints.
A more flexible solution would be to create a procedure, based upon a pl/sql table or other collection type that would duplicate the record structure on-the-fly. This could be included in a library and be usable by other forms. -
Regarding The Contract ITEM Conditions Details
Hello,
I am Uploading a Contract Details from the excel sheet in to the se38 but i am not getting the item condition details for the contract.i have called a BAPI (BAPI_CONTRACT_CREATE) and (BAPI_CONTRACT_CHANGE) .in that i have passed the ITEM CONDITIONS but and am checking in ME33K the item details are not getting updated . I have upload the 8 condition types but only one is getting uodated. I have 4 materials and for each material i have two two condition type, only the first conditon type of earch material is updated but not the second. I am unable to solve the problem please help me out. I will send also the code which i have wriiten.Please help me out as its Very Urgent.
Ecpecting a helpful answer.
REPORT YCMPUR055.
TYPE-POOLS: SLIS, TRUXS.
I N T E R N A L T A B L E S D E C L A R A T I O N
TYPES: BEGIN OF TY_RECORD,
OUR_REF TYPE BAPIMEOUTHEADER-OUR_REF, "Reference Number
VENDOR TYPE BAPIMEOUTHEADER-VENDOR, "Vendor
DOC_TYPE TYPE BAPIMEOUTHEADER-DOC_TYPE, "Agreement Type
DOC_DATE TYPE BAPIMEOUTHEADER-DOC_DATE, "Agreement Date
PURCH_ORG TYPE BAPIMEOUTHEADER-PURCH_ORG, "Purchase Organisation
PUR_GROUP TYPE BAPIMEOUTHEADER-PUR_GROUP, "Purchase Group
ITEM_CAT TYPE BAPIMEOUTITEM-ITEM_CAT, "Item category
PLANT TYPE BAPIMEOUTITEM-PLANT, "Plant
VPER_START TYPE BAPIMEOUTHEADER-VPER_START, "Valid from date
VPER_END TYPE BAPIMEOUTHEADER-VPER_END, "Valid to date
PMNTTRMS TYPE BAPIMEOUTHEADER-PMNTTRMS, "Payment terms
ACUM_VALUE TYPE BAPIMEOUTHEADER-ACUM_VALUE, "Target Value
CURRENCY TYPE BAPIMEOUTHEADER-CURRENCY, "Currency
INCOTERMS1 TYPE BAPIMEOUTITEM-INCOTERMS1, "Incoterms1
INCOTERMS2 TYPE BAPIMEOUTITEM-INCOTERMS2, "Destination
LAST_DATE TYPE SY-DATUM, "Last date
ITEM_NO TYPE BAPIMEOUTITEM-ITEM_NO, "Item number
MATERIAL TYPE BAPIMEOUTITEM-MATERIAL, "Material Code
MAT_DESC TYPE MAKTX , " Material description
SHORT_TEXT TYPE BAPIMEOUTITEM-SHORT_TEXT, "Material Description
MATL_GROUP TYPE BAPIMEOUTITEM-MATL_GROUP, "Material Group
TARGET_QTY TYPE BAPIMEOUTITEM-TARGET_QTY, "Target Quantity
PO_UNIT TYPE BAPIMEOUTITEM-PO_UNIT, "Order Unit
NET_PRICE TYPE BAPIMEOUTITEM-NET_PRICE, "Net Price
PRICE_UNIT TYPE BAPIMEOUTITEM-PRICE_UNIT, "Price Unit
ORDERPR_UN TYPE BAPIMEOUTITEM-ORDERPR_UN, "Order per Unit
TAX_CODE TYPE BAPIMEOUTITEM-TAX_CODE, "Tax code
COND_TYPE1 TYPE BAPIMEOUTCONDITION-COND_TYPE,
COND_VALUE1 TYPE BAPIMEOUTCONDITION-COND_VALUE,
COND_TYPE2 TYPE BAPIMEOUTCONDITION-COND_TYPE,
COND_VALUE2 TYPE BAPIMEOUTCONDITION-COND_VALUE,
COND_TYPE3 TYPE BAPIMEOUTCONDITION-COND_TYPE,
COND_VALUE3 TYPE BAPIMEOUTCONDITION-COND_VALUE,
COND_TYPE4 TYPE BAPIMEOUTCONDITION-COND_TYPE,
COND_VALUE4 TYPE BAPIMEOUTCONDITION-COND_VALUE,
COND_TYPE5 TYPE BAPIMEOUTCONDITION-COND_TYPE,
COND_VALUE5 TYPE BAPIMEOUTCONDITION-COND_VALUE,
COND_TYPE6 TYPE BAPIMEOUTCONDITION-COND_TYPE,
COND_VALUE6 TYPE BAPIMEOUTCONDITION-COND_VALUE,
COND_TYPE7 TYPE BAPIMEOUTCONDITION-COND_TYPE,
COND_VALUE7 TYPE BAPIMEOUTCONDITION-COND_VALUE,
COND_TYPE8 TYPE BAPIMEOUTCONDITION-COND_TYPE,
COND_VALUE8 TYPE BAPIMEOUTCONDITION-COND_VALUE,
COND_TYPE9 TYPE BAPIMEOUTCONDITION-COND_TYPE,
COND_VALUE9 TYPE BAPIMEOUTCONDITION-COND_VALUE,
COND_TYPE10 TYPE BAPIMEOUTCONDITION-COND_TYPE,
COND_VALUE10 TYPE BAPIMEOUTCONDITION-COND_VALUE,
COND_TYPE11 TYPE BAPIMEOUTCONDITION-COND_TYPE,
COND_VALUE11 TYPE BAPIMEOUTCONDITION-COND_VALUE,
COND_TYPE12 TYPE BAPIMEOUTCONDITION-COND_TYPE,
COND_VALUE12 TYPE BAPIMEOUTCONDITION-COND_VALUE,
COND_TYPE13 TYPE BAPIMEOUTCONDITION-COND_TYPE,
COND_VALUE13 TYPE BAPIMEOUTCONDITION-COND_VALUE,
COND_TYPE14 TYPE BAPIMEOUTCONDITION-COND_TYPE,
COND_VALUE14 TYPE BAPIMEOUTCONDITION-COND_VALUE,
COND_TYPE15 TYPE BAPIMEOUTCONDITION-COND_TYPE,
COND_VALUE15 TYPE BAPIMEOUTCONDITION-COND_VALUE,
COND_TYPE16 TYPE BAPIMEOUTCONDITION-COND_TYPE,
COND_VALUE16 TYPE BAPIMEOUTCONDITION-COND_VALUE,
COND_TYPE17 TYPE BAPIMEOUTCONDITION-COND_TYPE,
COND_VALUE17 TYPE BAPIMEOUTCONDITION-COND_VALUE,
COND_TYPE18 TYPE BAPIMEOUTCONDITION-COND_TYPE,
COND_VALUE18 TYPE BAPIMEOUTCONDITION-COND_VALUE,
COND_TYPE19 TYPE BAPIMEOUTCONDITION-COND_TYPE,
COND_VALUE19 TYPE BAPIMEOUTCONDITION-COND_VALUE,
COND_TYPE20 TYPE BAPIMEOUTCONDITION-COND_TYPE,
COND_VALUE20 TYPE BAPIMEOUTCONDITION-COND_VALUE,
COND_TYPE21 TYPE BAPIMEOUTCONDITION-COND_TYPE,
COND_VALUE21 TYPE BAPIMEOUTCONDITION-COND_VALUE,
COND_TYPE22 TYPE BAPIMEOUTCONDITION-COND_TYPE,
COND_VALUE22 TYPE BAPIMEOUTCONDITION-COND_VALUE,
COND_TYPE23 TYPE BAPIMEOUTCONDITION-COND_TYPE,
COND_VALUE23 TYPE BAPIMEOUTCONDITION-COND_VALUE,
COND_TYPE24 TYPE BAPIMEOUTCONDITION-COND_TYPE,
COND_VALUE24 TYPE BAPIMEOUTCONDITION-COND_VALUE,
COND_TYPE25 TYPE BAPIMEOUTCONDITION-COND_TYPE,
COND_VALUE25 TYPE BAPIMEOUTCONDITION-COND_VALUE,
COND_TYPE26 TYPE BAPIMEOUTCONDITION-COND_TYPE,
COND_VALUE26 TYPE BAPIMEOUTCONDITION-COND_VALUE,
COND_TYPE27 TYPE BAPIMEOUTCONDITION-COND_TYPE,
COND_VALUE27 TYPE BAPIMEOUTCONDITION-COND_VALUE,
COND_TYPE28 TYPE BAPIMEOUTCONDITION-COND_TYPE,
COND_VALUE28 TYPE BAPIMEOUTCONDITION-COND_VALUE,
COND_TYPE29 TYPE BAPIMEOUTCONDITION-COND_TYPE,
COND_VALUE29 TYPE BAPIMEOUTCONDITION-COND_VALUE,
COND_TYPE30 TYPE BAPIMEOUTCONDITION-COND_TYPE,
COND_VALUE30 TYPE BAPIMEOUTCONDITION-COND_VALUE,
COND_TYPE31 TYPE BAPIMEOUTCONDITION-COND_TYPE,
COND_VALUE31 TYPE BAPIMEOUTCONDITION-COND_VALUE,
COND_TYPE32 TYPE BAPIMEOUTCONDITION-COND_TYPE,
COND_VALUE32 TYPE BAPIMEOUTCONDITION-COND_VALUE,
COND_TYPE33 TYPE BAPIMEOUTCONDITION-COND_TYPE,
COND_VALUE33 TYPE BAPIMEOUTCONDITION-COND_VALUE,
COND_TYPE34 TYPE BAPIMEOUTCONDITION-COND_TYPE,
COND_VALUE34 TYPE BAPIMEOUTCONDITION-COND_VALUE,
COND_TYPE35 TYPE BAPIMEOUTCONDITION-COND_TYPE,
COND_VALUE35 TYPE BAPIMEOUTCONDITION-COND_VALUE,
COND_TYPE36 TYPE BAPIMEOUTCONDITION-COND_TYPE,
COND_VALUE36 TYPE BAPIMEOUTCONDITION-COND_VALUE,
COND_TYPE37 TYPE BAPIMEOUTCONDITION-COND_TYPE,
COND_VALUE37 TYPE BAPIMEOUTCONDITION-COND_VALUE,
COND_TYPE38 TYPE BAPIMEOUTCONDITION-COND_TYPE,
COND_VALUE38 TYPE BAPIMEOUTCONDITION-COND_VALUE,
COND_TYPE39 TYPE BAPIMEOUTCONDITION-COND_TYPE,
COND_VALUE39 TYPE BAPIMEOUTCONDITION-COND_VALUE,
COND_TYPE40 TYPE BAPIMEOUTCONDITION-COND_TYPE,
COND_VALUE40 TYPE BAPIMEOUTCONDITION-COND_VALUE,
COND_TYPE41 TYPE BAPIMEOUTCONDITION-COND_TYPE,
COND_VALUE41 TYPE BAPIMEOUTCONDITION-COND_VALUE,
COND_TYPE42 TYPE BAPIMEOUTCONDITION-COND_TYPE,
COND_VALUE42 TYPE BAPIMEOUTCONDITION-COND_VALUE,
COND_TYPE43 TYPE BAPIMEOUTCONDITION-COND_TYPE,
COND_VALUE43 TYPE BAPIMEOUTCONDITION-COND_VALUE,
COND_TYPE44 TYPE BAPIMEOUTCONDITION-COND_TYPE,
COND_VALUE44 TYPE BAPIMEOUTCONDITION-COND_VALUE,
END OF TY_RECORD.
TYPES: BEGIN OF TY_OUT,
DOCU_NUM TYPE EKKO-EBELN,
OUR_REF TYPE BAPIMEPOHEADER-OUR_REF,
TEXT(100) TYPE C,
END OF TY_OUT.
TYPES : BEGIN OF TY_MARC,
MATNR TYPE MATNR,
MTART TYPE MTART,
MAKTX TYPE MAKTX,
END OF TY_MARC.
TYPES : BEGIN OF TY_DATA,
MATNR TYPE MATNR,
WERKS TYPE WERKS_D,
END OF TY_DATA.
DATA: IT_OUT TYPE STANDARD TABLE OF TY_OUT,
IS_OUT TYPE TY_OUT.
DATA: IT_DATA TYPE STANDARD TABLE OF TY_DATA,
IS_DATA TYPE TY_DATA.
DATA : IT_MARC TYPE STANDARD TABLE OF TY_MARC,
IS_MARC TYPE TY_MARC.
DATA: IT_RECORD TYPE STANDARD TABLE OF TY_RECORD,
IS_RECORD TYPE TY_RECORD,
I_TAB TYPE TRUXS_T_TEXT_DATA.
DATA: IT_FIELDCAT TYPE SLIS_T_FIELDCAT_ALV,
IT_EVENT TYPE SLIS_T_EVENT ,
IT_TOP_OF_PAGE TYPE SLIS_T_LISTHEADER,
E04_LT_TOP_OF_PAGE TYPE SLIS_T_LISTHEADER,
IS_FIELDCAT TYPE SLIS_FIELDCAT_ALV,
IS_LAYOUT TYPE SLIS_LAYOUT_ALV,
IS_EVENT LIKE LINE OF IT_EVENT,
G_REPID TYPE SY-REPID.
DATA:HEADER TYPE BAPIMEOUTHEADER,
HEADERX TYPE BAPIMEOUTHEADERX,
IT_ITEM TYPE TABLE OF BAPIMEOUTITEM,
IT_ITEMX TYPE TABLE OF BAPIMEOUTITEMX,
IT_ITEM_UP TYPE TABLE OF BAPIMEOUTITEM,
IT_ITEMX_UP TYPE TABLE OF BAPIMEOUTITEMX,
IT_ITEM_COND_VALIDITY LIKE BAPIMEOUTVALIDITY OCCURS 0 WITH HEADER LINE,
IT_ITEM_COND_VALIDITY1 LIKE BAPIMEOUTVALIDITY OCCURS 0 WITH HEADER LINE,
IT_ITEM_COND_VALIDITYX LIKE BAPIMEOUTVALIDITYX OCCURS 0 WITH HEADER LINE,
IT_ITEM_CONDITION TYPE TABLE OF BAPIMEOUTCONDITION,
IT_ITEM_CONDITIONX TYPE TABLE OF BAPIMEOUTCONDITIONX,
IT_ITEM_CONDITION_UP TYPE TABLE OF BAPIMEOUTCONDITION,
IT_ITEM_CONDITIONX_UP TYPE TABLE OF BAPIMEOUTCONDITIONX,
IT_RETURN TYPE TABLE OF BAPIRET2,
IS_ITEM TYPE BAPIMEOUTITEM,
IS_ITEMX TYPE BAPIMEOUTITEMX,
IS_ITEM_COND_VALIDITY1 TYPE BAPIMEOUTVALIDITY ,
IS_ITEM_COND_VALIDITYX TYPE BAPIMEOUTVALIDITYX,
IS_ITEM_COND_VALIDITY TYPE BAPIMEOUTVALIDITY ,
IS_ITEM_CONDITION TYPE BAPIMEOUTCONDITION,
IS_ITEM_CONDITIONX TYPE BAPIMEOUTCONDITIONX,
IS_RETURN TYPE BAPIRET2,
EXP_HEADER TYPE BAPIMEOUTHEADER,
IT_RETURN_UP TYPE TABLE OF BAPIRET2,
W_PURCHASINGDOCUMENT TYPE BAPIMEOUTHEADER-NUMBER,
PURCHASINGDOCUMENT TYPE BAPIMEOUTHEADER-NUMBER.
*DATA : W_CNT TYPE I.
DATA : W_CNT TYPE I,
W_BAT TYPE I,
W_INDEX TYPE SY-TABIX,
W_TABIX TYPE SY-TABIX.
S E L E C T I O N S C R E E N
SELECTION-SCREEN BEGIN OF BLOCK B1 WITH FRAME TITLE TEXT-001.
PARAMETERS: P_FLNAME TYPE RLGRAP-FILENAME .
SELECTION-SCREEN END OF BLOCK B1.
AT SELECTION-SCREEN ON VALUE-REQUEST FOR P_FLNAME.
CALL FUNCTION 'KD_GET_FILENAME_ON_F4'
EXPORTING
PROGRAM_NAME = SYST-REPID
DYNPRO_NUMBER = SYST-DYNNR
FIELD_NAME = P_FLNAME
CHANGING
FILE_NAME = P_FLNAME
EXCEPTIONS
MASK_TOO_LONG = 1
OTHERS = 2.
S T A R T O F S E L E C T I O N
START-OF-SELECTION.
PERFORM UPLOAD_DATA.
PERFORM BAPI_CALL.
PERFORM DISPLAY.
*& Form UPLOAD_DATA
text
--> p1 text
<-- p2 text
FORM UPLOAD_DATA .
CALL FUNCTION 'TEXT_CONVERT_XLS_TO_SAP'
EXPORTING
I_TAB_RAW_DATA = I_TAB
I_FILENAME = P_FLNAME
TABLES
I_TAB_CONVERTED_DATA = IT_RECORD
EXCEPTIONS
CONVERSION_FAILED = 1
OTHERS = 2.
ENDFORM. " UPLOAD_DATA
*& Form BAPI_CALL
text
--> p1 text
<-- p2 text
FORM BAPI_CALL .
CHECK IT_RECORD[] IS NOT INITIAL.
LOOP AT IT_RECORD INTO IS_RECORD.
CALL FUNCTION 'CONVERSION_EXIT_MATN1_INPUT'
EXPORTING
INPUT = IS_RECORD-MATERIAL
IMPORTING
OUTPUT = IS_RECORD-MATERIAL.
IS_DATA-MATNR = IS_RECORD-MATERIAL.
IS_DATA-WERKS = IS_RECORD-PLANT.
APPEND IS_DATA TO IT_DATA.
CLEAR: IS_DATA, IS_RECORD.
ENDLOOP.
SORT IT_DATA BY MATNR WERKS.
DELETE ADJACENT DUPLICATES FROM IT_DATA COMPARING MATNR WERKS.
SELECT A~MATNR
MTART
B~MAKTX
INTO TABLE IT_MARC
FROM MARA AS A JOIN MAKT AS B
ON A~MATNR = B~MATNR
FOR ALL ENTRIES IN IT_DATA
WHERE A~MATNR = IT_DATA-MATNR
AND SPRAS = SY-LANGU.
IF SY-SUBRC = 0.
ENDIF.
SORT IT_MARC BY MATNR. " WERKS.
SORT IT_RECORD BY OUR_REF.
LOOP AT IT_RECORD INTO IS_RECORD.
W_CNT = W_CNT + 1.
CALL FUNCTION 'CONVERSION_EXIT_MATN1_INPUT'
EXPORTING
INPUT = IS_RECORD-MATERIAL
IMPORTING
OUTPUT = IS_RECORD-MATERIAL
EXCEPTIONS
LENGTH_ERROR = 1
OTHERS = 2.
READ TABLE IT_MARC INTO IS_MARC WITH KEY MATNR = IS_RECORD-MATERIAL
BINARY SEARCH.
IF SY-SUBRC <> 0.
IS_OUT-OUR_REF = IS_RECORD-OUR_REF.
CONCATENATE IS_RECORD-MATERIAL ' material does not exist..' INTO IS_OUT-TEXT SEPARATED BY SPACE.
APPEND IS_OUT TO IT_OUT.
CLEAR IS_OUT.
CONTINUE.
ENDIF.
CALL FUNCTION 'CONVERSION_EXIT_ALPHA_INPUT'
EXPORTING
INPUT = IS_RECORD-VENDOR
IMPORTING
OUTPUT = IS_RECORD-VENDOR.
HEADER-COMP_CODE = 'SCCL'.
HEADER-DOC_TYPE = IS_RECORD-DOC_TYPE.
HEADER-VENDOR = IS_RECORD-VENDOR.
HEADER-PMNTTRMS = IS_RECORD-PMNTTRMS.
HEADER-ITEM_INTVL = 1.
HEADER-PURCH_ORG = IS_RECORD-PURCH_ORG.
HEADER-PUR_GROUP = IS_RECORD-PUR_GROUP.
HEADER-CURRENCY = IS_RECORD-CURRENCY.
HEADER-DOC_DATE = IS_RECORD-DOC_DATE.
HEADER-VPER_START = IS_RECORD-VPER_START.
HEADER-VPER_END = IS_RECORD-VPER_END.
HEADER-INCOTERMS1 = IS_RECORD-INCOTERMS1.
HEADER-INCOTERMS2 = IS_RECORD-INCOTERMS2.
HEADER-ACUM_VALUE = IS_RECORD-ACUM_VALUE.
HEADER-OUR_REF = IS_RECORD-OUR_REF.
HEADERX-COMP_CODE = 'X'.
HEADERX-DOC_TYPE = 'X'.
HEADERX-VENDOR = 'X'.
HEADERX-PMNTTRMS = 'X'.
HEADERX-PURCH_ORG = 'X'.
HEADERX-PUR_GROUP = 'X'.
HEADERX-CURRENCY = 'X'.
HEADERX-DOC_DATE = 'X'.
HEADERX-VPER_START = 'X'.
HEADERX-VPER_END = 'X'.
HEADERX-INCOTERMS1 = 'X'.
HEADERX-INCOTERMS2 = 'X'.
HEADERX-ACUM_VALUE = 'X'.
HEADERX-OUR_REF = 'X'.
IS_ITEM-ITEM_NO = IS_RECORD-ITEM_NO.
IS_ITEM-SHORT_TEXT = IS_MARC-MAKTX. "IS_RECORD-MAT_DESC .
IF IS_MARC-MTART = 'ZMPN'.
IS_ITEM-EMATERIAL = IS_RECORD-MATERIAL.
ELSE.
IS_ITEM-MATERIAL = IS_RECORD-MATERIAL.
ENDIF.
IS_ITEM-PLANT = IS_RECORD-PLANT.
IS_ITEM-MATL_GROUP = IS_RECORD-MATL_GROUP.
IS_ITEM-TARGET_QTY = IS_RECORD-TARGET_QTY.
IS_ITEM-PO_UNIT = IS_RECORD-PO_UNIT.
IS_ITEM-ORDERPR_UN = IS_RECORD-ORDERPR_UN.
IS_ITEM-NET_PRICE = IS_RECORD-NET_PRICE.
IS_ITEM-PRICE_UNIT = IS_RECORD-PRICE_UNIT.
IS_ITEM-TAX_CODE = IS_RECORD-TAX_CODE.
IS_ITEM-ITEM_CAT = IS_RECORD-ITEM_CAT.
IS_ITEM-PERIOD_IND_EXPIRATION_DATE = 'D'.
APPEND IS_ITEM TO IT_ITEM.
IS_ITEMX-ITEM_NO = IS_RECORD-ITEM_NO.
IS_ITEMX-ITEM_NOX = 'X'.
IS_ITEMX-SHORT_TEXT = 'X'.
IS_ITEMX-MATERIAL = 'X'.
IS_ITEMX-PLANT = 'X'.
IS_ITEMX-MATL_GROUP = 'X'.
IS_ITEMX-TARGET_QTY = 'X'.
IS_ITEMX-PO_UNIT = 'X'.
IS_ITEMX-ORDERPR_UN = 'X'.
IS_ITEMX-NET_PRICE = 'X'.
IS_ITEMX-PRICE_UNIT = 'X'.
IS_ITEMX-TAX_CODE = 'X'.
IS_ITEMX-ITEM_CAT = 'X'.
APPEND IS_ITEMX TO IT_ITEMX.
IS_ITEM_COND_VALIDITY1-PLANT = IS_RECORD-PLANT.
IS_ITEM_COND_VALIDITY1-VALID_FROM = IS_RECORD-VPER_START.
IS_ITEM_COND_VALIDITY1-VALID_TO = IS_RECORD-VPER_END.
IS_ITEM_COND_VALIDITYX-PLANT = 'X'.
IS_ITEM_COND_VALIDITYX-ITEM_NOX = 'X'.
IS_ITEM_COND_VALIDITYX-SERIAL_IDX = 'X'.
IS_ITEM_COND_VALIDITYX-VALID_FROM = 'X'.
IS_ITEM_COND_VALIDITYX-VALID_TO = 'X'.
IF IS_RECORD-COND_TYPE1 IS NOT INITIAL.
IS_ITEM_CONDITION-ITEM_NO = IS_RECORD-ITEM_NO.
IS_ITEM_CONDITION-SERIAL_ID = '001'.
IS_ITEM_CONDITION-COND_TYPE = IS_RECORD-COND_TYPE1.
IS_ITEM_CONDITION-COND_VALUE = IS_RECORD-COND_VALUE1.
APPEND IS_ITEM_CONDITION TO IT_ITEM_CONDITION.
IS_ITEM_CONDITIONX-ITEM_NO = IS_RECORD-ITEM_NO.
IS_ITEM_CONDITIONX-SERIAL_ID = '001'.
IS_ITEM_CONDITIONX-ITEM_NOX = 'X'.
IS_ITEM_CONDITIONX-COND_TYPE = 'X'.
IS_ITEM_CONDITIONX-COND_VALUE = 'X'.
APPEND IS_ITEM_CONDITIONX TO IT_ITEM_CONDITIONX.
IS_ITEM_COND_VALIDITY1-ITEM_NO = IS_RECORD-ITEM_NO.
IS_ITEM_COND_VALIDITY1-SERIAL_ID = IS_ITEM_CONDITION-SERIAL_ID.
APPEND IS_ITEM_COND_VALIDITY1 TO IT_ITEM_COND_VALIDITY1.
IS_ITEM_COND_VALIDITYX-ITEM_NO = IS_RECORD-ITEM_NO.
IS_ITEM_COND_VALIDITYX-SERIAL_ID = IS_ITEM_CONDITIONX-SERIAL_ID.
APPEND IS_ITEM_COND_VALIDITYX TO IT_ITEM_COND_VALIDITYX.
ENDIF.
IF IS_RECORD-COND_TYPE2 IS NOT INITIAL.
IS_ITEM_CONDITION-ITEM_NO = IS_RECORD-ITEM_NO.
IS_ITEM_CONDITION-SERIAL_ID = '002'.
IS_ITEM_CONDITION-COND_TYPE = IS_RECORD-COND_TYPE2.
IS_ITEM_CONDITION-COND_VALUE = IS_RECORD-COND_VALUE2.
APPEND IS_ITEM_CONDITION TO IT_ITEM_CONDITION.
IS_ITEM_CONDITIONX-ITEM_NO = IS_RECORD-ITEM_NO.
IS_ITEM_CONDITIONX-SERIAL_ID = '002'.
IS_ITEM_CONDITIONX-ITEM_NOX = 'X'.
IS_ITEM_CONDITIONX-COND_TYPE = 'X'.
IS_ITEM_CONDITIONX-COND_VALUE = 'X'.
APPEND IS_ITEM_CONDITIONX TO IT_ITEM_CONDITIONX.
IS_ITEM_COND_VALIDITY1-ITEM_NO = IS_RECORD-ITEM_NO.
IS_ITEM_COND_VALIDITY1-SERIAL_ID = IS_ITEM_CONDITION-SERIAL_ID.
APPEND IS_ITEM_COND_VALIDITY1 TO IT_ITEM_COND_VALIDITY1.
IS_ITEM_COND_VALIDITYX-ITEM_NO = IS_RECORD-ITEM_NO.
IS_ITEM_COND_VALIDITYX-SERIAL_ID = IS_ITEM_CONDITIONX-SERIAL_ID.
APPEND IS_ITEM_COND_VALIDITYX TO IT_ITEM_COND_VALIDITYX.
ENDIF.
IF IS_RECORD-COND_TYPE3 IS NOT INITIAL.
IS_ITEM_CONDITION-ITEM_NO = IS_RECORD-ITEM_NO.
IS_ITEM_CONDITION-SERIAL_ID = '003'.
IS_ITEM_CONDITION-COND_TYPE = IS_RECORD-COND_TYPE3.
IS_ITEM_CONDITION-COND_VALUE = IS_RECORD-COND_VALUE3.
APPEND IS_ITEM_CONDITION TO IT_ITEM_CONDITION.
IS_ITEM_CONDITIONX-ITEM_NO = IS_RECORD-ITEM_NO.
IS_ITEM_CONDITIONX-SERIAL_ID = '003'.
IS_ITEM_CONDITIONX-ITEM_NOX = 'X'.
IS_ITEM_CONDITIONX-COND_TYPE = 'X'.
IS_ITEM_CONDITIONX-COND_VALUE = 'X'.
APPEND IS_ITEM_CONDITIONX TO IT_ITEM_CONDITIONX.
IS_ITEM_COND_VALIDITY1-ITEM_NO = IS_RECORD-ITEM_NO.
IS_ITEM_COND_VALIDITY1-SERIAL_ID = IS_ITEM_CONDITION-SERIAL_ID.
APPEND IS_ITEM_COND_VALIDITY1 TO IT_ITEM_COND_VALIDITY1.
IS_ITEM_COND_VALIDITYX-ITEM_NO = IS_RECORD-ITEM_NO.
IS_ITEM_COND_VALIDITYX-SERIAL_ID = IS_ITEM_CONDITIONX-SERIAL_ID.
APPEND IS_ITEM_COND_VALIDITYX TO IT_ITEM_COND_VALIDITYX.
ENDIF.
IF IS_RECORD-COND_TYPE4 IS NOT INITIAL.
IS_ITEM_CONDITION-ITEM_NO = IS_RECORD-ITEM_NO.
IS_ITEM_CONDITION-SERIAL_ID = '004'.
IS_ITEM_CONDITION-COND_TYPE = IS_RECORD-COND_TYPE4.
IS_ITEM_CONDITION-COND_VALUE = IS_RECORD-COND_VALUE4.
APPEND IS_ITEM_CONDITION TO IT_ITEM_CONDITION.
IS_ITEM_CONDITIONX-ITEM_NO = IS_RECORD-ITEM_NO.
IS_ITEM_CONDITIONX-SERIAL_ID = '004'.
IS_ITEM_CONDITIONX-ITEM_NOX = 'X'.
IS_ITEM_CONDITIONX-COND_TYPE = 'X'.
IS_ITEM_CONDITIONX-COND_VALUE = 'X'.
APPEND IS_ITEM_CONDITIONX TO IT_ITEM_CONDITIONX.
IS_ITEM_COND_VALIDITY1-ITEM_NO = IS_RECORD-ITEM_NO.
IS_ITEM_COND_VALIDITY1-SERIAL_ID = IS_ITEM_CONDITION-SERIAL_ID.
APPEND IS_ITEM_COND_VALIDITY1 TO IT_ITEM_COND_VALIDITY1.
IS_ITEM_COND_VALIDITYX-ITEM_NO = IS_RECORD-ITEM_NO.
IS_ITEM_COND_VALIDITYX-SERIAL_ID = IS_ITEM_CONDITIONX-SERIAL_ID.
APPEND IS_ITEM_COND_VALIDITYX TO IT_ITEM_COND_VALIDITYX.
ENDIF.
IF IS_RECORD-COND_TYPE5 IS NOT INITIAL.
IS_ITEM_CONDITION-ITEM_NO = IS_RECORD-ITEM_NO.
IS_ITEM_CONDITION-SERIAL_ID = '005'.
IS_ITEM_CONDITION-COND_TYPE = IS_RECORD-COND_TYPE5.
IS_ITEM_CONDITION-COND_VALUE = IS_RECORD-COND_VALUE5.
APPEND IS_ITEM_CONDITION TO IT_ITEM_CONDITION.
IS_ITEM_CONDITIONX-ITEM_NO = IS_RECORD-ITEM_NO.
IS_ITEM_CONDITIONX-SERIAL_ID = '005'.
IS_ITEM_CONDITIONX-ITEM_NOX = 'X'.
IS_ITEM_CONDITIONX-COND_TYPE = 'X'.
IS_ITEM_CONDITIONX-COND_VALUE = 'X'.
APPEND IS_ITEM_CONDITIONX TO IT_ITEM_CONDITIONX.
IS_ITEM_COND_VALIDITY1-ITEM_NO = IS_RECORD-ITEM_NO.
IS_ITEM_COND_VALIDITY1-SERIAL_ID = IS_ITEM_CONDITION-SERIAL_ID.
APPEND IS_ITEM_COND_VALIDITY1 TO IT_ITEM_COND_VALIDITY1.
IS_ITEM_COND_VALIDITYX-ITEM_NO = IS_RECORD-ITEM_NO.
IS_ITEM_COND_VALIDITYX-SERIAL_ID = IS_ITEM_CONDITIONX-SERIAL_ID.
APPEND IS_ITEM_COND_VALIDITYX TO IT_ITEM_COND_VALIDITYX.
ENDIF.
IF IS_RECORD-COND_TYPE6 IS NOT INITIAL.
IS_ITEM_CONDITION-ITEM_NO = IS_RECORD-ITEM_NO.
IS_ITEM_CONDITION-SERIAL_ID = '006'.
IS_ITEM_CONDITION-COND_TYPE = IS_RECORD-COND_TYPE6.
IS_ITEM_CONDITION-COND_VALUE = IS_RECORD-COND_VALUE6.
APPEND IS_ITEM_CONDITION TO IT_ITEM_CONDITION.
IS_ITEM_CONDITIONX-ITEM_NO = IS_RECORD-ITEM_NO.
IS_ITEM_CONDITIONX-SERIAL_ID = '006'.
IS_ITEM_CONDITIONX-ITEM_NOX = 'X'.
IS_ITEM_CONDITIONX-COND_TYPE = 'X'.
IS_ITEM_CONDITIONX-COND_VALUE = 'X'.
APPEND IS_ITEM_CONDITIONX TO IT_ITEM_CONDITIONX.
IS_ITEM_COND_VALIDITY1-ITEM_NO = IS_RECORD-ITEM_NO.
IS_ITEM_COND_VALIDITY1-SERIAL_ID = IS_ITEM_CONDITION-SERIAL_ID.
APPEND IS_ITEM_COND_VALIDITY1 TO IT_ITEM_COND_VALIDITY1.
IS_ITEM_COND_VALIDITYX-ITEM_NO = IS_RECORD-ITEM_NO.
IS_ITEM_COND_VALIDITYX-SERIAL_ID = IS_ITEM_CONDITIONX-SERIAL_ID.
APPEND IS_ITEM_COND_VALIDITYX TO IT_ITEM_COND_VALIDITYX.
ENDIF.
IF IS_RECORD-COND_TYPE7 IS NOT INITIAL.
IS_ITEM_CONDITION-ITEM_NO = IS_RECORD-ITEM_NO.
IS_ITEM_CONDITION-SERIAL_ID = '007'.
IS_ITEM_CONDITION-COND_TYPE = IS_RECORD-COND_TYPE7.
IS_ITEM_CONDITION-COND_VALUE = IS_RECORD-COND_VALUE7.
APPEND IS_ITEM_CONDITION TO IT_ITEM_CONDITION.
IS_ITEM_CONDITIONX-ITEM_NO = IS_RECORD-ITEM_NO.
IS_ITEM_CONDITIONX-SERIAL_ID = '007'.
IS_ITEM_CONDITIONX-ITEM_NOX = 'X'.
IS_ITEM_CONDITIONX-COND_TYPE = 'X'.
IS_ITEM_CONDITIONX-COND_VALUE = 'X'.
APPEND IS_ITEM_CONDITIONX TO IT_ITEM_CONDITIONX.
IS_ITEM_COND_VALIDITY1-ITEM_NO = IS_RECORD-ITEM_NO.
IS_ITEM_COND_VALIDITY1-SERIAL_ID = IS_ITEM_CONDITION-SERIAL_ID.
APPEND IS_ITEM_COND_VALIDITY1 TO IT_ITEM_COND_VALIDITY1.
IS_ITEM_COND_VALIDITYX-ITEM_NO = IS_RECORD-ITEM_NO.
IS_ITEM_COND_VALIDITYX-SERIAL_ID = IS_ITEM_CONDITIONX-SERIAL_ID.
APPEND IS_ITEM_COND_VALIDITYX TO IT_ITEM_COND_VALIDITYX.
ENDIF.
IF IS_RECORD-COND_TYPE8 IS NOT INITIAL.
IS_ITEM_CONDITION-ITEM_NO = IS_RECORD-ITEM_NO.
IS_ITEM_CONDITION-SERIAL_ID = '008'.
IS_ITEM_CONDITION-COND_TYPE = IS_RECORD-COND_TYPE8.
IS_ITEM_CONDITION-COND_VALUE = IS_RECORD-COND_VALUE8.
APPEND IS_ITEM_CONDITION TO IT_ITEM_CONDITION.
IS_ITEM_CONDITIONX-ITEM_NO = IS_RECORD-ITEM_NO.
IS_ITEM_CONDITIONX-SERIAL_ID = '008'.
IS_ITEM_CONDITIONX-ITEM_NOX = 'X'.
IS_ITEM_CONDITIONX-COND_TYPE = 'X'.
IS_ITEM_CONDITIONX-COND_VALUE = 'X'.
APPEND IS_ITEM_CONDITIONX TO IT_ITEM_CONDITIONX.
IS_ITEM_COND_VALIDITY1-ITEM_NO = IS_RECORD-ITEM_NO.
IS_ITEM_COND_VALIDITY1-SERIAL_ID = IS_ITEM_CONDITION-SERIAL_ID.
APPEND IS_ITEM_COND_VALIDITY1 TO IT_ITEM_COND_VALIDITY1.
IS_ITEM_COND_VALIDITYX-ITEM_NO = IS_RECORD-ITEM_NO.
IS_ITEM_COND_VALIDITYX-SERIAL_ID = IS_ITEM_CONDITIONX-SERIAL_ID.
APPEND IS_ITEM_COND_VALIDITYX TO IT_ITEM_COND_VALIDITYX.
ENDIF.
IF IS_RECORD-COND_TYPE9 IS NOT INITIAL.
IS_ITEM_CONDITION-ITEM_NO = IS_RECORD-ITEM_NO.
IS_ITEM_CONDITION-SERIAL_ID = '009'.
IS_ITEM_CONDITION-COND_TYPE = IS_RECORD-COND_TYPE9.
IS_ITEM_CONDITION-COND_VALUE = IS_RECORD-COND_VALUE9.
APPEND IS_ITEM_CONDITION TO IT_ITEM_CONDITION.
IS_ITEM_CONDITIONX-ITEM_NO = IS_RECORD-ITEM_NO.
IS_ITEM_CONDITIONX-SERIAL_ID = '009'.
IS_ITEM_CONDITIONX-ITEM_NOX = 'X'.
IS_ITEM_CONDITIONX-COND_TYPE = 'X'.
IS_ITEM_CONDITIONX-COND_VALUE = 'X'.
APPEND IS_ITEM_CONDITIONX TO IT_ITEM_CONDITIONX.
IS_ITEM_COND_VALIDITY1-ITEM_NO = IS_RECORD-ITEM_NO.
IS_ITEM_COND_VALIDITY1-SERIAL_ID = IS_ITEM_CONDITION-SERIAL_ID.
APPEND IS_ITEM_COND_VALIDITY1 TO IT_ITEM_COND_VALIDITY1.
IS_ITEM_COND_VALIDITYX-ITEM_NO = IS_RECORD-ITEM_NO.
IS_ITEM_COND_VALIDITYX-SERIAL_ID = IS_ITEM_CONDITIONX-SERIAL_ID.
APPEND IS_ITEM_COND_VALIDITYX TO IT_ITEM_COND_VALIDITYX.
ENDIF.
IF IS_RECORD-COND_TYPE10 IS NOT INITIAL.
IS_ITEM_CONDITION-ITEM_NO = IS_RECORD-ITEM_NO.
IS_ITEM_CONDITION-SERIAL_ID = '010'.
IS_ITEM_CONDITION-COND_TYPE = IS_RECORD-COND_TYPE10.
IS_ITEM_CONDITION-COND_VALUE = IS_RECORD-COND_VALUE10.
APPEND IS_ITEM_CONDITION TO IT_ITEM_CONDITION.
IS_ITEM_CONDITIONX-ITEM_NO = IS_RECORD-ITEM_NO.
IS_ITEM_CONDITIONX-SERIAL_ID = '010'.
IS_ITEM_CONDITIONX-ITEM_NOX = 'X'.
IS_ITEM_CONDITIONX-COND_TYPE = 'X'.
IS_ITEM_CONDITIONX-COND_VALUE = 'X'.
APPEND IS_ITEM_CONDITIONX TO IT_ITEM_CONDITIONX.
IS_ITEM_COND_VALIDITY1-ITEM_NO = IS_RECORD-ITEM_NO.
IS_ITEM_COND_VALIDITY1-SERIAL_ID = IS_ITEM_CONDITION-SERIAL_ID.
APPEND IS_ITEM_COND_VALIDITY1 TO IT_ITEM_COND_VALIDITY1.
IS_ITEM_COND_VALIDITYX-ITEM_NO = IS_RECORD-ITEM_NO.
IS_ITEM_COND_VALIDITYX-SERIAL_ID = IS_ITEM_CONDITIONX-SERIAL_ID.
APPEND IS_ITEM_COND_VALIDITYX TO IT_ITEM_COND_VALIDITYX.
ENDIF.
IF IS_RECORD-COND_TYPE11 IS NOT INITIAL.
IS_ITEM_CONDITION-ITEM_NO = IS_RECORD-ITEM_NO.
IS_ITEM_CONDITION-SERIAL_ID = '011'.
IS_ITEM_CONDITION-COND_TYPE = IS_RECORD-COND_TYPE11.
IS_ITEM_CONDITION-COND_VALUE = IS_RECORD-COND_VALUE11.
APPEND IS_ITEM_CONDITION TO IT_ITEM_CONDITION.
IS_ITEM_CONDITIONX-ITEM_NO = IS_RECORD-ITEM_NO.
IS_ITEM_CONDITIONX-SERIAL_ID = '011'.
IS_ITEM_CONDITIONX-ITEM_NOX = 'X'.
IS_ITEM_CONDITIONX-COND_TYPE = 'X'.
IS_ITEM_CONDITIONX-COND_VALUE = 'X'.
APPEND IS_ITEM_CONDITIONX TO IT_ITEM_CONDITIONX.
IS_ITEM_COND_VALIDITY1-ITEM_NO = IS_RECORD-ITEM_NO.
IS_ITEM_COND_VALIDITY1-SERIAL_ID = IS_ITEM_CONDITION-SERIAL_ID.
APPEND IS_ITEM_COND_VALIDITY1 TO IT_ITEM_COND_VALIDITY1.
IS_ITEM_COND_VALIDITYX-ITEM_NO = IS_RECORD-ITEM_NO.
IS_ITEM_COND_VALIDITYX-SERIAL_ID = IS_ITEM_CONDITIONX-SERIAL_ID.
APPEND IS_ITEM_COND_VALIDITYX TO IT_ITEM_COND_VALIDITYX.
ENDIF.
IF IS_RECORD-COND_TYPE12 IS NOT INITIAL.
IS_ITEM_CONDITION-ITEM_NO = IS_RECORD-ITEM_NO.
IS_ITEM_CONDITION-SERIAL_ID = '012'.
IS_ITEM_CONDITION-COND_TYPE = IS_RECORD-COND_TYPE12.
IS_ITEM_CONDITION-COND_VALUE = IS_RECORD-COND_VALUE12.
APPEND IS_ITEM_CONDITION TO IT_ITEM_CONDITION.
IS_ITEM_CONDITIONX-ITEM_NO = IS_RECORD-ITEM_NO.
IS_ITEM_CONDITIONX-SERIAL_ID = '012'.
IS_ITEM_CONDITIONX-ITEM_NOX = 'X'.
IS_ITEM_CONDITIONX-COND_TYPE = 'X'.
IS_ITEM_CONDITIONX-COND_VALUE = 'X'.
APPEND IS_ITEM_CONDITIONX TO IT_ITEM_CONDITIONX.
IS_ITEM_COND_VALIDITY1-ITEM_NO = IS_RECORD-ITEM_NO.
IS_ITEM_COND_VALIDITY1-SERIAL_ID = IS_ITEM_CONDITION-SERIAL_ID.
APPEND IS_ITEM_COND_VALIDITY1 TO IT_ITEM_COND_VALIDITY1.
IS_ITEM_COND_VALIDITYX-ITEM_NO = IS_RECORD-ITEM_NO.
IS_ITEM_COND_VALIDITYX-SERIAL_ID = IS_ITEM_CONDITIONX-SERIAL_ID.
APPEND IS_ITEM_COND_VALIDITYX TO IT_ITEM_COND_VALIDITYX.
ENDIF.
IF IS_RECORD-COND_TYPE13 IS NOT INITIAL.
IS_ITEM_CONDITION-ITEM_NO = IS_RECORD-ITEM_NO.
IS_ITEM_CONDITION-SERIAL_ID = '013'.
IS_ITEM_CONDITION-COND_TYPE = IS_RECORD-COND_TYPE13.
IS_ITEM_CONDITION-COND_VALUE = IS_RECORD-COND_VALUE13.
APPEND IS_ITEM_CONDITION TO IT_ITEM_CONDITION.
IS_ITEM_CONDITIONX-ITEM_NO = IS_RECORD-ITEM_NO.
IS_ITEM_CONDITIONX-SERIAL_ID = '013'.
IS_ITEM_CONDITIONX-ITEM_NOX = 'X'.
IS_ITEM_CONDITIONX-COND_TYPE = 'X'.
IS_ITEM_CONDITIONX-COND_VALUE = 'X'.
APPEND IS_ITEM_CONDITIONX TO IT_ITEM_CONDITIONX.
IS_ITEM_COND_VALIDITY1-ITEM_NO = IS_RECORD-ITEM_NO.
IS_ITEM_COND_VALIDITY1-SERIAL_ID = IS_ITEM_CONDITION-SERIAL_ID.
APPEND IS_ITEM_COND_VALIDITY1 TO IT_ITEM_COND_VALIDITY1.
IS_ITEM_COND_VALIDITYX-ITEM_NO = IS_RECORD-ITEM_NO.
IS_ITEM_COND_VALIDITYX-SERIAL_ID = IS_ITEM_CONDITIONX-SERIAL_ID.
APPEND IS_ITEM_COND_VALIDITYX TO IT_ITEM_COND_VALIDITYX.
ENDIF.
IF IS_RECORD-COND_TYPE14 IS NOT INITIAL.
IS_ITEM_CONDITION-ITEM_NO = IS_RECORD-ITEM_NO.
IS_ITEM_CONDITION-SERIAL_ID = '014'.
IS_ITEM_CONDITION-COND_TYPE = IS_RECORD-COND_TYPE14.
IS_ITEM_CONDITION-COND_VALUE = IS_RECORD-COND_VALUE14.
APPEND IS_ITEM_CONDITION TO IT_ITEM_CONDITION.
IS_ITEM_CONDITIONX-ITEM_NO = IS_RECORD-ITEM_NO.
IS_ITEM_CONDITIONX-SERIAL_ID = '014'.
IS_ITEM_CONDITIONX-ITEM_NOX = 'X'.
IS_ITEM_CONDITIONX-COND_TYPE = 'X'.
IS_ITEM_CONDITIONX-COND_VALUE = 'X'.
APPEND IS_ITEM_CONDITIONX TO IT_ITEM_CONDITIONX.
IS_ITEM_COND_VALIDITY1-ITEM_NO = IS_RECORD-ITEM_NO.
IS_ITEM_COND_VALIDITY1-SERIAL_ID = IS_ITEM_CONDITION-SERIAL_ID.
APPEND IS_ITEM_COND_VALIDITY1 TO IT_ITEM_COND_VALIDITY1.
IS_ITEM_COND_VALIDITYX-ITEM_NO = IS_RECORD-ITEM_NO.
IS_ITEM_COND_VALIDITYX-SERIAL_ID = IS_ITEM_CONDITIONX-SERIAL_ID.
APPEND IS_ITEM_COND_VALIDITYX TO IT_ITEM_COND_VALIDITYX.
ENDIF.
IF IS_RECORD-COND_TYPE15 IS NOT INITIAL.
IS_ITEM_CONDITION-ITEM_NO = IS_RECORD-ITEM_NO.
IS_ITEM_CONDITION-SERIAL_ID = '015'.
IS_ITEM_CONDITION-COND_TYPE = IS_RECORD-COND_TYPE15.
IS_ITEM_CONDITION-COND_VALUE = IS_RECORD-COND_VALUE15.
APPEND IS_ITEM_CONDITION TO IT_ITEM_CONDITION.
IS_ITEM_CONDITIONX-ITEM_NO = IS_RECORD-ITEM_NO.
IS_ITEM_CONDITIONX-SERIAL_ID = '015'.
IS_ITEM_CONDITIONX-ITEM_NOX = 'X'.
IS_ITEM_CONDITIONX-COND_TYPE = 'X'.
IS_ITEM_CONDITIONX-COND_VALUE = 'X'.
APPEND IS_ITEM_CONDITIONX TO IT_ITEM_CONDITIONX.
IS_ITEM_COND_VALIDITY1-ITEM_NO = IS_RECORD-ITEM_NO.
IS_ITEM_COND_VALIDITY1-SERIAL_ID = IS_ITEM_CONDITION-SERIAL_ID.
APPEND IS_ITEM_COND_VALIDITY1 TO IT_ITEM_COND_VALIDITY1.
IS_ITEM_COND_VALIDITYX-ITEM_NO = IS_RECORD-ITEM_NO.
IS_ITEM_COND_VALIDITYX-SERIAL_ID = IS_ITEM_CONDITIONX-SERIAL_ID.
APPEND IS_ITEM_COND_VALIDITYX TO IT_ITEM_COND_VALIDITYX.
ENDIF.
IF IS_RECORD-COND_TYPE16 IS NOT INITIAL.
IS_ITEM_CONDITION-ITEM_NO = IS_RECORD-ITEM_NO.
IS_ITEM_CONDITION-SERIAL_ID = '016'.
IS_ITEM_CONDITION-COND_TYPE = IS_RECORD-COND_TYPE16.
IS_ITEM_CONDITION-COND_VALUE = IS_RECORD-COND_VALUE16.
APPEND IS_ITEM_CONDITION TO IT_ITEM_CONDITION.
IS_ITEM_CONDITIONX-ITEM_NO = IS_RECORD-ITEM_NO.
IS_ITEM_CONDITIONX-SERIAL_ID = '016'.
IS_ITEM_CONDITIONX-ITEM_NOX = 'X'.
IS_ITEM_CONDITIONX-COND_TYPE = 'X'.
IS_ITEM_CONDITIONX-COND_VALUE = 'X'.
APPEND IS_ITEM_CONDITIONX TO IT_ITEM_CONDITIONX.
IS_ITEM_COND_VALIDITY1-ITEM_NO = IS_RECORD-ITEM_NO.
IS_ITEM_COND_VALIDITY1-SERIAL_ID = IS_ITEM_CONDITION-SERIAL_ID.
APPEND IS_ITEM_COND_VALIDITY1 TO IT_ITEM_COND_VALIDITY1.
IS_ITEM_COND_VALIDITYX-ITEM_NO = IS_RECORD-ITEM_NO.
IS_ITEM_COND_VALIDITYX-SERIAL_ID = IS_ITEM_CONDITIONX-SERIAL_ID.
APPEND IS_ITEM_COND_VALIDITYX TO IT_ITEM_COND_VALIDITYX.
ENDIF.
IF IS_RECORD-COND_TYPE17 IS NOT INITIAL.
IS_ITEM_CONDITION-ITEM_NO = IS_RECORD-ITEM_NO.
IS_ITEM_CONDITION-SERIAL_ID = '017'.
IS_ITEM_CONDITION-COND_TYPE = IS_RECORD-COND_TYPE17.
IS_ITEM_CONDITION-COND_VALUE = IS_RECORD-COND_VALUE17.
APPEND IS_ITEM_CONDITION TO IT_ITEM_CONDITION.
IS_ITEM_CONDITIONX-ITEM_NO = IS_RECORD-ITEM_NO.
IS_ITEM_CONDITIONX-SERIAL_ID = '017'.
IS_ITEM_CONDITIONX-ITEM_NOX = 'X'.
IS_ITEM_CONDITIONX-COND_TYPE = 'X'.
IS_ITEM_CONDITIONX-COND_VALUE = 'X'.
APPEND IS_ITEM_CONDITIONX TO IT_ITEM_CONDITIONX.
IS_ITEM_COND_VALIDITY1-ITEM_NO = IS_RECORD-ITEM_NO.
IS_ITEM_COND_VALIDITY1-SERIAL_ID = IS_ITEM_CONDITION-SERIAL_ID.
APPEND IS_ITEM_COND_VALIDITY1 TO IT_ITEM_COND_VALIDITY1.
IS_ITEM_COND_VALIDITYX-ITEM_NO = IS_RECORD-ITEM_NO.
IS_ITEM_COND_VALIDITYX-SERIAL_ID = IS_ITEM_CONDITIONX-SERIAL_ID.
APPEND IS_ITEM_COND_VALIDITYX TO IT_ITEM_COND_VALIDITYX.
ENDIF.
IF IS_RECORD-COND_TYPE18 IS NOT INITIAL.
IS_ITEM_CONDITION-ITEM_NO = IS_RECORD-ITEM_NO.
IS_ITEM_CONDITION-SERIAL_ID = '018'.
IS_ITEM_CONDITION-COND_TYPE = IS_RECORD-COND_TYPE18.
IS_ITEM_CONDITION-COND_VALUE = IS_RECORD-COND_VALUE18.
APPEND IS_ITEM_CONDITION TO IT_ITEM_CONDITION.
IS_ITEM_CONDITIONX-ITEM_NO = IS_RECORD-ITEM_NO.
IS_ITEM_CONDITIONX-SERIAL_ID = '018'.
IS_ITEM_CONDITIONX-ITEM_NOX = 'X'.
IS_ITEM_CONDITIONX-COND_TYPE = 'X'.
IS_ITEM_CONDITIONX-COND_VALUE = 'X'.
APPEND IS_ITEM_CONDITIONX TO IT_ITEM_CONDITIONX.
IS_ITEM_COND_VALIDITY1-ITEM_NO = IS_RECORD-ITEM_NO.
IS_ITEM_COND_VALIDITY1-SERIAL_ID = IS_ITEM_CONDITION-SERIAL_ID.
APPEND IS_ITEM_COND_VALIDITY1 TO IT_ITEM_COND_VALIDITY1.
IS_ITEM_COND_VALIDITYX-ITEM_NO = IS_RECORD-ITEM_NO.
IS_ITEM_COND_VALIDITYX-SERIAL_ID = IS_ITEM_CONDITIONX-SERIAL_ID.
APPEND IS_ITEM_COND_VALIDITYX TO IT_ITEM_COND_VALIDITYX.
ENDIF.
IF IS_RECORD-COND_TYPE19 IS NOT INITIAL.
IS_ITEM_CONDITION-ITEM_NO = IS_RECORD-ITEM_NO.
IS_ITEM_CONDITION-SERIAL_ID = '019'.
IS_ITEM_CONDITION-COND_TYPE = IS_RECORD-COND_TYPE19.
IS_ITEM_CONDITION-COND_VALUE = IS_RECORD-COND_VALUE19.
APPEND IS_ITEM_CONDITION TO IT_ITEM_CONDITION.
IS_ITEM_CONDITIONX-ITEM_NO = IS_RECORD-ITEM_NO.
IS_ITEM_CONDITIONX-SERIAL_ID = '019'.
IS_ITEM_CONDITIONX-ITEM_NOX = 'X'.
IS_ITEM_CONDITIONX-COND_TYPE = 'X'.
IS_ITEM_CONDITIONX-COND_VALUE = 'X'.
APPEND IS_ITEM_CONDITIONX TO IT_ITEM_CONDITIONX.
IS_ITEM_COND_VALIDITY1-ITEM_NO = IS_RECORD-ITEM_NO.
IS_ITEM_COND_VALIDITY1-SERIAL_ID = IS_ITEM_CONDITION-SERIAL_ID.
APPEND IS_ITEM_COND_VALIDITY1 TO IT_ITEM_COND_VALIDITY1.
IS_ITEM_COND_VALIDITYX-ITEM_NO = IS_RECORD-ITEM_NO.
IS_ITEM_COND_VALIDITYX-SERIAL_ID = IS_ITEM_CONDITIONX-SERIAL_ID.
APPEND IS_ITEM_COND_VALIDITYX TO IT_ITEM_COND_VALIDITYX.
ENDIF.
IF IS_RECORD-COND_TYPE20 IS NOT INITIAL.
IS_ITEM_CONDITION-ITEM_NO = IS_RECORD-ITEM_NO.
IS_ITEM_CONDITION-SERIAL_ID = '020'.
IS_ITEM_CONDITION-COND_TYPE = IS_RECORD-COND_TYPE20.
IS_ITEM_CONDITION-COND_VALUE = IS_RECORD-COND_VALUE20.
APPEND IS_ITEM_CONDITION TO IT_ITEM_CONDITION.
IS_ITEM_CONDITIONX-ITEM_NO = IS_RECORD-ITEM_NO.
IS_ITEM_CONDITIONX-SERIAL_ID = '020'.
IS_ITEM_CONDITIONX-ITEM_NOX = 'X'.
IS_ITEM_CONDITIONX-COND_TYPE = 'X'.
IS_ITEM_CONDITIONX-COND_VALUE = 'X'.
APPEND IS_ITEM_CONDITIONX TO IT_ITEM_CONDITIONX.
IS_ITEM_COND_VALIDITY1-ITEM_NO = IS_RECORD-ITEM_NO.
IS_ITEM_COND_VALIDITY1-SERIAL_ID = IS_ITEM_CONDITION-SERIAL_ID.
APPEND IS_ITEM_COND_VALIDITY1 TO IT_ITEM_COND_VALIDITY1.
IS_ITEM_COND_VALIDITYX-ITEM_NO = IS_RECORD-ITEM_NO.
IS_ITEM_COND_VALIDITYX-SERIAL_ID = IS_ITEM_CONDITIONX-SERIAL_ID.
APPEND IS_ITEM_COND_VALIDITYX TO IT_ITEM_COND_VALIDITYX.
ENDIF.
IF IS_RECORD-COND_TYPE21 IS NOT INITIAL.
IS_ITEM_CONDITION-ITEM_NO = IS_RECORD-ITEM_NO.
IS_ITEM_CONDITION-SERIAL_ID = '021'.
IS_ITEM_CONDITION-COND_TYPE = IS_RECORD-COND_TYPE21.
IS_ITEM_CONDITION-COND_VALUE = IS_RECORD-COND_VALUE21.
APPEND IS_ITEM_CONDITION TO IT_ITEM_CONDITION.
IS_ITEM_CONDITIONX-ITEM_NO = IS_RECORD-ITEM_NO.
IS_ITEM_CONDITIONX-SERIAL_ID = '021'.
IS_ITEM_CONDITIONX-ITEM_NOX = 'X'.
IS_ITEM_CONDITIONX-COND_TYPE = 'X'.
IS_ITEM_CONDITIONX-COND_VALUE = 'X'.
APPEND IS_ITEM_CONDITIONX TO IT_ITEM_CONDITIONX.
IS_ITEM_COND_VALIDITY1-ITEM_NO = IS_RECORD-ITEM_NO.
IS_ITEM_COND_VALIDITY1-SERIAL_ID = IS_ITEM_CONDITION-SERIAL_ID.
APPEND IS_ITEM_COND_VALIDITY1 TO IT_ITEM_COND_VALIDITY1.
IS_ITEM_COND_VALIDITYX-ITEM_NO = IS_RECORD-ITEM_NO.
IS_ITEM_COND_VALIDITYX-SERIAL_ID = IS_ITEM_CONDITIONX-SERIAL_ID.
APPEND IS_ITEM_COND_VALIDITYX TO IT_ITEM_COND_VALIDITYX.
ENDIF.
IF IS_RECORD-COND_TYPE22 IS NOT INITIAL.
IS_ITEM_CONDITION-ITEM_NO = IS_RECORD-ITEM_NO.
IS_ITEM_CONDITION-SERIAL_ID = '022'.
IS_ITEM_CONDITION-COND_TYPE = IS_RECORD-COND_TYPE22.
IS_ITEM_CONDITION-COND_VALUE = IS_RECORD-COND_VALUE22.
APPEND IS_ITEM_CONDITION TO IT_ITEM_CONDITION.
IS_ITEM_CONDITIONX-ITEM_NO = IS_RECORD-ITEM_NO.
IS_ITEM_CONDITIONX-SERIAL_ID = '022'.
IS_ITEM_CONDITIONX-ITEM_NOX = 'X'.
IS_ITEM_CONDITIONX-COND_TYPE = 'X'.
IS_ITEM_CONDITIONX-COND_VALUE = 'X'.
APPEND IS_ITEM_CONDITIONX TO IT_ITEM_CONDITIONX.
IS_ITEM_COND_VALIDITY1-ITEM_NO = IS_RECORD-ITEM_NO.
IS_ITEM_COND_VALIDITY1-SERIAL_ID = IS_ITEM_CONDITION-SERIAL_ID.
APPEND IS_ITEM_COND_VALIDITY1 TO IT_ITEM_COND_VALIDITY1.
IS_ITEM_COND_VALIDITYX-ITEM_NO = IS_RECORD-ITEM_NO.
IS_ITEM_COND_VALIDITYX-SERIAL_ID = IS_ITEM_CONDITIONX-SERIAL_ID.
APPEND IS_ITEM_COND_VALIDITYX TO IT_ITEM_COND_VALIDITYX.
ENDIF.
IF IS_RECORD-COND_TYPE23 IS NOT INITIAL.
IS_ITEM_CONDITION-ITEM_NO = IS_RECORD-ITEM_NO.
IS_ITEM_CONDITION-SERIAL_ID = '023'.
IS_ITEM_CONDITION-COND_TYPE = IS_RECORD-COND_TYPE23.
IS_ITEM_CONDITION-COND_VALUE = IS_RECORD-COND_VALUE23.
APPEND IS_ITEM_CONDITION TO IT_ITEM_CONDITION.
IS_ITEM_CONDITIONX-ITEM_NO = IS_RECORD-ITEM_NO.
IS_ITEM_CONDITIONX-SERIAL_ID = '023'.
IS_ITEM_CONDITIONX-ITEM_NOX = 'X'.
IS_ITEM_CONDITIONX-COND_TYPE = 'X'.
IS_ITEM_CONDITIONX-COND_VALUE = 'X'.
APPEND IS_ITEM_CONDITIONX TO IT_ITEM_CONDITIONX.
IS_ITEM_COND_VALIDITY1-ITEM_NO = IS_RECORD-ITEM_NO.
IS_ITEM_COND_VALIDITY1-SERIAL_ID = IS_ITEM_CONDITION-SERIAL_ID.
APPEND IS_ITEM_COND_VALIDITY1 TO IT_ITEM_COND_VALIDITY1.
IS_ITEM_COND_VALIDITYX-ITEM_NO = IS_RECORD-ITEM_NO.
IS_ITEM_COND_VALIDITYX-SERIAL_ID = IS_ITEM_CONDITIONX-SERIAL_ID.
APPEND IS_ITEM_COND_VALIDITYX TO IT_ITEM_COND_VALIDITYX.
ENDIF.
IF IS_RECORD-COND_TYPE24 IS NOT INITIAL.
IS_ITEM_CONDITION-ITEM_NO = IS_RECORD-ITEM_NO.
IS_ITEM_CONDITION-SERIAL_ID = '024'.
IS_ITEM_CONDITION-COND_TYPE = IS_RECORD-COND_TYPE24.
IS_ITEM_CONDITION-COND_VALUE = IS_RECORD-COND_VALUE24.
APPEND IS_ITEM_CONDITION TO IT_ITEM_CONDITION.
IS_ITEM_CONDITIONX-ITEM_NO = IS_RECORD-ITEM_NO.
IS_ITEM_CONDITIONX-SERIAL_ID = '024'.
IS_ITEM_CONDITIONX-ITEM_NOX = 'X'.
IS_ITEM_CONDITIONX-COND_TYPE = 'X'.
IS_ITEM_CONDITIONX-COND_VALUE = 'X'.
APPEND IS_ITEM_CONDITIONX TO IT_ITEM_CONDITIONX.
IS_ITEM_COND_VALIDITY1-ITEM_NO = IS_RECORD-ITEM_NO.
IS_ITEM_COND_VALIDITY1-SERIAL_ID = IS_ITEM_CONDITION-SERIAL_ID.
APPEND IS_ITEM_COND_VALIDITY1 TO IT_ITEM_COND_VALIDITY1.
IS_ITEM_COND_VALIDITYX-ITEM_NO = IS_RECORD-ITEM_NO.
IS_ITEM_COND_VALIDITYX-SERIAL_ID = IS_ITEM_CONDITIONX-SERIAL_ID.
APPEND IS_ITEM_COND_VALIDITYX TO IT_ITEM_COND_VALIDITYX.
ENDIF.
IF IS_RECORD-COND_TYPE25 IS NOT INITIAL.
IS_ITEM_CONDITION-ITEM_NO = IS_RECORD-ITEM_NO.
IS_ITEM_CONDITION-SERIAL_ID = '025'.
IS_ITEM_CONDITION-COND_TYPE = IS_RECORD-COND_TYPE25.
IS_ITEM_CONDITION-COND_VALUE = IS_RECORD-COND_VALUE25.
APPEND IS_ITEM_CONDITION TO IT_ITEM_CONDITION.
IS_ITEM_CONDITIONX-ITEM_NO = IS_RECORD-ITEM_NO.
IS_ITEM_CONDITIONX-SERIAL_ID = '025'.
IS_ITEM_CONDITIONX-ITEM_NOX = 'X'.
IS_ITEM_CONDITIONX-COND_TYPE = 'X'.
IS_ITEM_CONDITIONX-COND_VALUE = 'X'.
APPEND IS_ITEM_CONDITIONX TO IT_ITEM_CONDITIONX.
IS_ITEM_COND_VALIDITY1-ITEM_NO = IS_RECORD-ITEM_NO.
IS_ITEM_COND_VALIDITY1-SERIAL_ID = IS_ITEM_CONDITION-SERIAL_ID.
APPEND IS_ITEM_COND_VALIDITY1 TO IT_ITEM_COND_VALIDITY1.
IS_ITEM_COND_VALIDITYX-ITEM_NO = IS_RECORD-ITEM_NO.
IS_ITEM_COND_VALIDITYX-SERIAL_ID = IS_ITEM_CONDITIONX-SERIAL_ID.
APPEND IS_ITEM_COND_VALIDITYX TO IT_ITEM_COND_VALIDITYX.
ENDIF.
IF IS_RECORD-COND_TYPE26 IS NOT INITIAL.
IS_ITEM_CONDITION-ITEM_NO = IS_RECORD-ITEM_NO.
IS_ITEM_CONDITION-SERIAL_ID = '026'.
IS_ITEM_CONDITION-COND_TYPE = IS_RECORD-COND_TYPE26.
IS_ITEM_CONDITION-COND_VALUE = IS_RECORD-COND_VALUE26.Hi,
Please get the valid condition ( based on date ) from A016 (MK & LPA). With the appropriate KNUMH read the Condition header. You can access the different condition items viz., PB00, RA00 etc., for the values from table KONP. Further if you have Value scales / Quantity scales, you can read the data from KONM, KONW.
An additional tips: in KONP, if you have a condition like RA00 - Rebate, the value will be multiplied by 10 and saven in database to accomodate the discount to the third decimal.
I could not completely understand your requirements like nature of development ( Is it a Report / SAP Script ??) you are working etc., so that I could help you precisely.
Hope this helps,
Best Regards, Murugesh AS
Message was edited by:
Murugesh Arcot -
Validating primary key in Detail block...
Dear Oracle Friends..
I have a master-detail form. Detail blk (further referred as dtl) has primary key on 2 cols namely CODE1 and CODE2. CODE1 is foreign key to the master blk. CODE2 will have unique values with respect to CODE1.
When I create the master-detail form the user can enter more that 1 records in detail block. Now I want to trace that the value of CODE2 field should not be duplicate while the entry of multiple records.
I cannot POST the record as my some other functions will mal-function then. One thing to note that this field is a list item.
I tried to validate it in when-validate-item using loop on all the fetched values by going on FIRST_RECORD and scanning all the values of CODE2 but it is restricted built-in and not supported here.
POST_CHANGE trigger also not works.
Can anybody suggest me a solution
Thanks
UMESHHi
There is the (in)famous solution of the 1-millisecond timer.
In the item when-validate-item trigger, create a
non-repeating timer of 1 ms, and in the form when-timer-expired
trigger you can navigate by all the records and check if
there is some duplicity, because there you can use restricted
built-ins.
Luis Cabral
Dear Oracle Friends..
I have a master-detail form. Detail blk (further referred as dtl) has primary key on 2 cols namely CODE1 and CODE2. CODE1 is foreign key to the master blk. CODE2 will have unique values with respect to CODE1.
When I create the master-detail form the user can enter more that 1 records in detail block. Now I want to trace that the value of CODE2 field should not be duplicate while the entry of multiple records.
I cannot POST the record as my some other functions will mal-function then. One thing to note that this field is a list item.
I tried to validate it in when-validate-item using loop on all the fetched values by going on FIRST_RECORD and scanning all the values of CODE2 but it is restricted built-in and not supported here.
POST_CHANGE trigger also not works.
Can anybody suggest me a solution
Thanks
UMESH -
How to display data in detail block from a table.
Dear members,
i have 2 blocks. 1 is master block and another is detail block with multiple records.
the requirement is when i navigate to the detail block the data from a table is displayed in it. using a where clause depend on the value in an item in the master block.
i wrote the following code and tried in when-new-block-instance, when-new-record-instance, pre-block and post-block
but...
DECLARE
CURSOR ITEM_CUR IS
SELECT ITEM_ID, QTY_APPROVED
FROM IN_REQUEST_FORM_DETAIL
WHERE RF_MASTER_ID = :IN_MASTER_PO.RF_ID;
BEGIN
FOR ITEM_REC IN ITEM_CUR LOOP
:IN_PO_DETAIL.ITEM_ID := ITEM_REC.ITEM_ID;
:IN_PO_DETAIL.DIS_APPROVED_QTY := ITEM_REC.QTY_APPROVED;
NEXT_RECORD;
END LOOP;
EXCEPTION
WHEN NO_DATA_FOUND THEN
MESSAGE ('THERE IS NO REQUESTS');
END;thanks dear simon,
i want to display the data from a table not included in this form. and these two tables are connected via a relation.
i have the following tables.
in_master_po
PO_ID pk
PO_DATE
RF_DETAIL_ID fk (in_request_form_detail)
in_po_detail
DETAIL_PO_ID pk
ITEM_ID fk
PO_ID fk (in_master_po)
QTY
the above 2 tables are datablocks connected via relation
the following is the from which i want to bring the data to display
in_request_form_detail
RF_DETAIL_ID pk
ITEM_ID fk (items)
QTY_REQ
i tried my code on the sample tables with scott/tiger there it works good.
thanks
Muhammad Nadeem -
How to query the master block based on one of the values in detail block
Hi,
In version 6i forms, I have a field in data block which is not set as a database item. I am using that field to store a value from detail block. If I want to query the form using that field (which represents one of the values from detail block), how do I do that? Any pointers?
TIA,Do you want to query a master, which contains a specific detail? If so, here's an example how you could do it with a PRE-QUERY-trigger:
DECLARE
vcQuery VARCHAR2(4000);
BEGIN
IF :MASTERBLOCK.THE_DETAIL_SEARCH_ITEM IS NOT NULL THEN
-- Build up an exists Sub-Query
vcQuery:=' MASTERBLOCKID IN (SELECT FK_TO_MASTERBLOCK FROM DETAILTABLE WHERE DETAIL_COLUMN=''' || :MASTERBLOCK.THE_DETAIL_SEARCH_ITEM|| ''')';
END IF;
SET_BLOCK_PROPERTY('MASTERBLOCK', DEFAULT_WHERE, vcQuery);
END;
Maybe you are looking for
-
Getting Error when trying to deploy Portlet Application on WebLogic Server
Hi, We have a WebLogic server installed on a Windows machine. We created a new Domain, extended it with ADF Runtime and with Web Center Framework. It created three servers for us along with the already existing AdminServer, WLS_Portlet, WLS_Spaces, W
-
Hi, everyone. I have trawled this discussion list and followed all the advice available to no avail. Any help would certainly be appreciated. The background is as follows: MacBook Pro, 2.33GHz Intel Core 2 duo, 2GB RAM, currently running OSX 10.6.2.
-
Best quality footage in (uncompressed?) prior to dvdland
what is the cleanest input path from 1" analog tapes to dvd thru fcp? several dv tapes have been already been generated from these reels using dv ntsc codec. is there any clarity to be gained by importing the clips in an uncompressed codec? thanks, a
-
Safari 2.0 unable to open hotmail
Hi, everyone! I seem to be having problem opening Hotmail, and Msn completely. I have a Mac OS X (10.4), and the model is PowerMac6,3. I'm using Safari 2.0. When I try to open hotmail, all I get is a blank window. I called Mac, and they determined it
-
Why doesn't the enter key respond when saving a web page?
go to save a web page, complete and when i press the enter key it doesn't work. i have to move the mouse pointer to the save button and click it that way but it slower this way. why won't it let me just push the enter button on my keyboard to save? a