Looping the tables
hi experts,
I have a typical requiremnt .i need to get some numbers during section screen .i have created a smartform with a table in it .according to the number i have selected at selection screen .the tables should be printed .how to do this.?
Hi
Use this simple code to generate a Random number.
Regards
Raj
REPORT ZRANDOM.
Random Numbers
DATA : MYAMOUNT LIKE BBSEG-WRBTR.
DO 5 TIMES.
PERFORM GENERATE_RND.
ENDDO.
FORM GENERATE_RND.
CALL FUNCTION 'RANDOM_AMOUNT'
EXPORTING
RND_MIN = '1'
RND_MAX = '100'
VALCURR = 'DEM'
IMPORTING
RND_AMOUNT = MYAMOUNT
EXCEPTIONS
OTHERS = 1.
WRITE:/ MYAMOUNT.
ENDFORM. " GENERATE_RND
Similar Messages
-
Loop the table entry and for every entry perform some action.
Hello Experts,
I have a requirement where there are let say n no. of entries in my ITAB and now for every entry i have to check certain field value and based on that i have to send respective mail.
Now this has to run in background mode and the job will run on daily basis so the entries of table that are already processed should not be reprocessed.The scenario is every day the new entries will be added to ITAB and the newly added entries should be processed only.
Please provide some sample code if possible.
Thanks,
NaveenHi,
I can not add a new field to the existing ztable. Crating a copy of ztable with addtional field status and setting it as processed against the record whenever i populate ITAB from ztable could be a solution but seems very lenthy method.
There is one filed zdate so write the code as below:-
loop at itab where zdate = sy-datum
email code------
endloop.
OR can i make use of
loop at itab into wa
ON change of <filed1>
email code-----
ENDON
endloop.
Thanks,
Naveen -
Code To Update the Table in ECC from Webdynpro
Hi All,
I want to know, the table is dispalyed in the webdynpro browser when we calls the Adaptive RFC Model.
after i want to add one more row in the webdynpro and just clicking on add button the row will be updated in the ECC server(backend) for that how can i write the coding, regarding this issue can you please help me.
ThanX All,Hi Sriram,
Assuming you have a table filled with records by adding one by one, If you want to update a table in SAP ECC, follow these steps.. i think already you are triggering the action for the button in view(for table updation) to method in controller or created a custom controller and mapped the model node.
1. Initialize the main model node and bind the model node with the intialised object like
Zbapi_MainModelNode_Input input = new Zbapi_MainModelNode_Input();
wdContext.nodeZbapi_MainModelNode_Input ().bind(input);
2. Now loop the table node and set the values with corresponding class in the generated model (from webdynpro explorer) and initialize like
IPrivateControllerName.ITableElement myTab = null;
for ( int i = 0; i < wdContext.nodeTable().size();i++)
myTab = this.wdContext.nodeTable().getTableElementAt(i);
Bapi_structname name = new Bapi_structname();
name.setFieldName1(myTab.getFieldName1);
name.setFieldName2(myTab.getFieldName2);
input.addT_Bapi_(name);
Finally execute the BAPI..
wdContext.currentZbapi_MainModelNode_Input tElement().modelObject().execute();
Hope this solves your issue - Update the Table in ECC from Webdynpro.
Regards,
Manjunath
Edited by: Manjunath Subramani on Nov 20, 2009 4:26 PM
Edited by: Manjunath Subramani on Nov 20, 2009 4:27 PM -
Hi All,
I have written the code, for greater than (GJAHR) 2007 and restricted company codes ( table name = ZGLCCODE).
Here I have written the following the code which is giving an error
In "LOOP ... WHERE ..." the line type of the table must be statically defin
ZGLCCODE Contains only restricted company codes.
Code is as follows
TABLES : ZGLCCODE.
DATA : LT_DATAPACKAGE TYPE TABLE OF DTFIGL_4.
DATA : LS_PACKAGE TYPE DTFIGL_4.
TYPES: BEGIN OF LS_TZGLCCODE,
ZBUKRS type BUKRS,
END OF LS_TZGLCCODE.
DATA : LT_ITZGLCCODE TYPE LS_TZGLCCODE OCCURS 0 WITH HEADER LINE.
DATA : LI_NUM TYPE I,
LC_ZGJAHR TYPE BSEG-GJAHR VALUE '2007'.
SELECT ZBUKRS INTO TABLE LT_ITZGLCCODE FROM ZGLCCODE.
Note: "C_T_DATA" dynamic structure = "DTFIGL_4" structure
*- Remove from the DataSource Company Code -
LOOP AT C_T_DATA INTO LS_PACKAGE WHERE GJAHR GE '2007'.
READ TABLE LT_ITZGLCCODE WITH KEY ZBUKRS = LS_PACKAGE-BUKRS.
IF SY-SUBRC <> 0.
APPEND LS_PACKAGE TO LT_DATAPACKAGE.
ENDIF.
CLEAR LS_PACKAGE.
ENDLOOP.
IF LT_DATAPACKAGE[] IS NOT INITIAL.
DESCRIBE TABLE LT_DATAPACKAGE LINES LI_NUM.
IF LI_NUM GT 0.
REFRESH C_T_DATA.
APPEND LINES OF LT_DATAPACKAGE TO C_T_DATA.
REFRESH LT_DATAPACKAGE.
FREE LT_DATAPACKAGE.
endif.
ELSE.
REFRESH C_T_DATA.
ENDIF.
Please give me your valuable suggestions.
Thanks
Ganesh Reddy.Hi Ganesh,
whatever you do, you can try like this:
1 - any code posted should be wrapped in \
then try something like this:
field-symbols:
<tabrec> type any,
<field> type any.
sort ITZGLCCODE by bukrs.
LOOP AT C_T_DATA ASSIGNING <tabrec>.
ASSIGN component 'GJAHR' of structure <tabrec> to <field>.
check <field> <= 2007.
ASSIGN component 'BUKRS' of structure <tabrec> to <field>.
READ TABLE LT_ITZGLCCODE WITH KEY ZBUKRS = <field>
BINARY SEARCH TRANSPORTING NO FIELDS. "speed up the volume.
IF SY-SUBRC 0.
MOVE-CORRESPONDING <tabrec> to LS_PACKAGE.
APPEND LS_PACKAGE TO LT_DATAPACKAGE.
ENDIF.
ENDLOOP.
Regards,
Clemens -
Looping the same answer from the 1st row in the table
I have a database with 3 tables: (1) employeeTable (2) cityTable (3)stateTable.
I reference the employee's city name and state code by each id number from the cityTable and stateTable.
My Employee table has about 10 records, 3 has an idcity and idstate input, the rest are blank.
(1st row) id 9 for Henderson, id 28 for NV (6th row) id 9 for Henderson, id 28 for NV, and (10th row) id 10 for Las Vegas, id 28 for NV
I run a query:
<cfquery datasource="dsnName" name="qEmployees">SELECT * FROM users ORDER BY lastName ASC</cfquery>
<cfquery datasource="dsnName" name="qState">SELECT code FROM states WHERE idstate=#qEmployees.idstate#</cfquery>
<cfquery datasource="dsnName" name="qCity">SELECT name FROM cities WHERE idcities=#qEmployees.idcity#</cfquery>
a run the table output:
<table>
<cfoutput query="qEmployees">
<tr>
<td>#qEmployees.lastName#, #qEmployees.firstName#</td>
<td>#qCity.name#</td>
<td width="40">#qState.code#</td>
<td width="60">#qEmployees.zipCode#</td>
</tr>
</cfoutput>
</table>
PROBLEM:
All 10 records output in the table as the same answer from the 1st row (Henderson, NV).
What's making this loop having the same answer from the 1st row and affects all the rows with blank info or different info?
I've been trying to figure this out for weeks and I hope the community can help me out. Thanks!As Dan rightly says, take a look into table joins; there's no point just giving you the answer as you'll just get stuck next time and these forums are to help people rather than to do their jobs for them.
What you're looking to do is a relatively simple join, so you shouldn't have to read up for long before you've mastered them. Plus your site will be significantly more efficient -
How we can loop the screen table.
Hi All,
We are used loop the screen table but it is a structure how we are able to do this what sap doing behind this can any body please tell me.
Thanks,
Saleem.Hi
SCREEN is a structure only.
But when you create a screen or selection-screen; the program which controls your screen or selection-screen creates an internal table with header line of type SCREEN.
So in your program SCREEN is an internal table, you can always loop it.
To understand it better, write some parameters and select-options in a report program; in debugging mode see the details of SCREEN table.
Regards
Surya. -
Draw the Borders on the Table and Loop Contents.
Hello Everyone,
I have a Table and a Loop in the Smartform. I am Printing the Details on the Tabular Format of 5 coulums and a few rows in the table and a loop.
Now, I want to Draw the table lines for these tables and the Loop.
The Option of Boxes and Lines are provided but I can not use them.
Can any one please Suggest me how to use the Lines and the Boxes on the table and the Loop.
Regards,
Deepak.Hello,
I tried the way you told me to but then every time I single click or even double click. It just gives me the same error that
"The Boxes and shadowing are not allowed in the Table."
I am doing this in the Output options tab of the Cell which has been created under the Row line of the table.
Please suggest me any other possible work around or the solution. Many thanks for your Advice so far.
Regards,
Deepak. -
Segmenting the data in the table
Hello,
I need to create the segmentation on a table. Below is the original data in the table.
Begmeasure EndMeasure DetMethod Testpressure
0 7703
Acceptable 1006
7703 32149 Acceptable
1007
8323 32149 Not Verified 1010
8323 32149 Not Verified
1010
10988 32149 Acceptable 1010
Forst row should be compared to its next row. If the next row beg and end measures are in between the first row's beg and end measures or overlaps with the first row, and first row method is " acceptable" and the test pressure is smaller, the first
row segment stays as the final record. The logic has to loop through every subsequent row untill there is no overlap between the two compared rows.
As shown below, the rows 3 and 4 are elimated/replaced with 2nd row becuase the detmethod is "Not Verified". Only 2 types of methods exists in the table, "Acceptable" and "Not Verified". In this 10988 is less than 32149, So
its an overlap. So, we have to segment as 7703 to 10988 and 10988 to 32149. I want the result set to be like this below:
After Segmentation :
BegMeasure EndMeasure DetMethod
Testpressure
0 7703 Acceptable
1006
7703 10988 Acceptable
1007
10988 32149
Acceptable 1010
Please help me in achieving this. Thanks so much for all the help.
Thank You>First row should be compared to its next row.
First choice is set-based operations. However, you may have to do a cursor WHILE loop for this one:
http://www.sqlusa.com/bestpractices2005/runningtotalusingcursor/
Nested cursor WHILE loops:
http://www.sqlusa.com/bestpractices2005/doublecursor/
Kalman Toth Database & OLAP Architect
IPAD SELECT Query Video Tutorial 3.5 Hours
New Book / Kindle: Exam 70-461 Bootcamp: Querying Microsoft SQL Server 2012 -
How to update the table available in BADI method
Hi Friends,
I have to implement one badi ME_REQ_POSTED for purchase requistion, in this badi I have to read first line item and do
some check...if that check is true i need to update subsequent line item (line 20, 30, 40 or so) with purchase group and MRP controller.
In this BADI i have method POSTED, in this method parameter IM_EBAN is a table which i need to modify with my different
values for purchase group and MRP controller.
Kindly let me know how to update this table, so the changes can be reflected in purchase requistion.
Since when I tried to directly modify the table in a loop, system throw one error stating IM_EBAN can not be modified.
kindly help.
pradeephi
I have implemented this exit but it does not stop at it while saving Purchase requistion. But my previous BADI stops at it when saving.
Kindly guide. -
Search cannot be executed because the table has pending changes
I'm getting the following error ..... The search cannot be executed because the table has pending changes that would be lost .... in the following scenario ....
My 1st page is a search page with resulting rows from which the user can select specific rows to process ..... next button will populate the VO for the 2nd page by manually looping thru the selected rows in the VO of the 1st page. Loop logic is in the AM and it calls a method in the VORowImpl that uses setAttributeInternal .... the 2nd page displays the selected rows .....
Pressing the back button of the 2nd page will display the 1st page and if the user tries to do a new search .... the error shows up.
Any suggestions on how to handle this?
Thank you.It seems to me that you are using the same VO on both the pages. If that is the case try to use separate VO for each page.
And as suggested by Sumit, Never use/ rely on browser back button. Instead put a Back button on the second page through you can handle the event yourself rather than leaving on the mercy of browser.
--Saroj -
Getting values from the table control to the program
Hi Gurus,
i created a program for sales order creation to transfer order creation and to insert multiple values i defined my own selection screen by inserting table control before that the code executed succesfully but after inserting the table control it is not creating any documents
code before inserting table control:-
REPORT zcl120_sales_n_delivery.
SALES DOCUMENT CREATION
PARAMETERS: p_auart TYPE auart OBLIGATORY.
PARAMETERS: p_vkorg TYPE vkorg OBLIGATORY.
PARAMETERS: p_vtweg TYPE vtweg OBLIGATORY.
PARAMETERS: p_spart TYPE vtweg OBLIGATORY.
PARAMETERS: p_sold TYPE kunnr OBLIGATORY.
PARAMETERS: p_ship TYPE kunnr OBLIGATORY.
*ITEM
PARAMETERS: p_matnr TYPE matnr OBLIGATORY.
PARAMETERS: p_menge TYPE kwmeng OBLIGATORY.
PARAMETERS: p_plant TYPE werks_d OBLIGATORY.
PARAMETERS: p_itcat TYPE pstyv OBLIGATORY.
DATA DECLARATIONS.
DATA: v_vbeln LIKE vbak-vbeln.
DATA: header LIKE bapisdhead1.
DATA: headerx LIKE bapisdhead1x.
DATA: item LIKE bapisditem OCCURS 0 WITH HEADER LINE.
DATA: itemx LIKE bapisditemx OCCURS 0 WITH HEADER LINE.
DATA: partner LIKE bapipartnr OCCURS 0 WITH HEADER LINE.
DATA: return LIKE bapiret2 OCCURS 0 WITH HEADER LINE.
DATA: lt_schedules_inx TYPE STANDARD TABLE OF bapischdlx
WITH HEADER LINE.
DATA: lt_schedules_in TYPE STANDARD TABLE OF bapischdl
WITH HEADER LINE.
HEADER DATA
header-doc_type = p_auart.
headerx-doc_type = 'X'.
header-sales_org = p_vkorg.
headerx-sales_org = 'X'.
header-distr_chan = p_vtweg.
headerx-distr_chan = 'X'.
header-division = p_spart.
headerx-division = 'X'.
headerx-updateflag = 'I'.
partner-partn_role = 'AG'.
partner-partn_numb = p_sold.
APPEND partner.
partner-partn_role = 'WE'.
partner-partn_numb = p_ship.
APPEND partner.
item-material = p_matnr.
item-plant = p_plant.
item-target_qty = p_menge.
item-target_qu = 'ST'.
item-item_categ = p_itcat.
APPEND item.
itemx-updateflag = 'I'.
itemx-material = 'X'.
itemx-plant = 'X'.
itemx-target_qty = 'X'.
itemx-target_qu = 'X'.
itemx-item_categ = 'X'.
APPEND itemx.
Fill schedule lines
lt_schedules_in-itm_number = '000010'.
lt_schedules_in-sched_line = '0001'.
lt_schedules_in-req_qty = p_menge.
APPEND lt_schedules_in.
Fill schedule line flags
lt_schedules_inx-itm_number = '000010'.
lt_schedules_inx-sched_line = '0001'.
lt_schedules_inx-updateflag = 'X'.
lt_schedules_inx-req_qty = 'X'.
APPEND lt_schedules_inx.
Call the BAPI
CALL FUNCTION 'BAPI_SALESDOCU_CREATEFROMDATA1'
EXPORTING
sales_header_in = header
sales_header_inx = headerx
IMPORTING
salesdocument_ex = v_vbeln
TABLES
return = return
sales_items_in = item
sales_items_inx = itemx
sales_schedules_in = lt_schedules_in
sales_schedules_inx = lt_schedules_inx
sales_partners = partner.
LOOP AT return WHERE type = 'E' OR type = 'A'.
EXIT.
ENDLOOP.
IF sy-subrc = 0.
WRITE / return-message.
WRITE: / 'Error in creating document'.
ELSE.
COMMIT WORK AND WAIT.
WRITE: / 'Document ', v_vbeln, ' created'.
ENDIF.
DELIVERY ORDER CREATION
*PARAMETERS: p_vbeln LIKE vbak-vbeln.
DATA: BEGIN OF t_vbap OCCURS 0,
vbeln LIKE vbap-vbeln,
posnr LIKE vbap-posnr,
kwmeng LIKE vbap-kwmeng,
matnr LIKE vbap-matnr,
werks LIKE vbap-werks,
END OF t_vbap.
DATA: t_request TYPE STANDARD TABLE OF bapideliciousrequest
WITH HEADER LINE.
DATA: t_created TYPE STANDARD TABLE OF bapideliciouscreateditems
WITH HEADER LINE.
DATA: t_return TYPE STANDARD TABLE OF bapiret2 WITH HEADER LINE.
SELECT vbeln posnr kwmeng matnr werks
INTO TABLE t_vbap
FROM vbap
WHERE vbeln = v_vbeln
LOOP AT t_vbap.
t_request-document_numb = t_vbap-vbeln.
t_request-document_item = t_vbap-posnr.
t_request-quantity_sales_uom = t_vbap-kwmeng.
t_request-id = 1.
t_request-document_type = 'A'.
t_request-delivery_date = sy-datum.
t_request-material = t_vbap-matnr.
t_request-plant = t_vbap-werks.
t_request-date = sy-datum.
t_request-goods_issue_date = sy-datum.
t_request-goods_issue_time = sy-uzeit.
APPEND t_request.
ENDLOOP.
CALL FUNCTION 'BAPI_DELIVERYPROCESSING_EXEC'
TABLES
request = t_request
createditems = t_created
return = t_return.
READ TABLE t_return WITH KEY type = 'E'.
IF sy-subrc = 0.
MESSAGE e208(00) WITH 'Delivery creation error'.
ENDIF.
COMMIT WORK.
READ TABLE t_created INDEX 1.
WRITE: / 'Delivery Number : ',
t_created-document_numb.
CREATE TRANSFER ORDER
DATA: w_tanum TYPE ltak-tanum.
CALL FUNCTION 'L_TO_CREATE_DN'
EXPORTING
i_lgnum = '010'
i_vbeln = t_created-document_numb
IMPORTING
e_tanum = w_tanum
EXCEPTIONS
foreign_lock = 1
dn_completed = 2
partial_delivery_forbidden = 3
xfeld_wrong = 4
ldest_wrong = 5
drukz_wrong = 6
dn_wrong = 7
squit_forbidden = 8
no_to_created = 9
teilk_wrong = 10
update_without_commit = 11
no_authority = 12
no_picking_allowed = 13
dn_hu_not_choosable = 14
input_error = 15
OTHERS = 16
IF sy-subrc <> 0.
MESSAGE ID SY-MSGID TYPE SY-MSGTY NUMBER SY-MSGNO
WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4.
ENDIF.
COMMIT WORK AND WAIT.
WRITE: / 'Transfer order number',
w_tanum.
Code after inserting table control:-
REPORT zcl120_sales_n_delivery.
SALES DOCUMENT CREATION
DATA: p_auart TYPE auart .
DATA: p_vkorg TYPE vkorg .
DATA: p_vtweg TYPE vtweg .
DATA: p_spart TYPE vtweg .
DATA: p_sold TYPE kunnr .
DATA: p_ship TYPE kunnr .
*ITEM
data:
begin of it_item occurs 0,
p_matnr TYPE matnr,
p_menge TYPE kwmeng,
p_plant TYPE werks_d,
p_itcat TYPE pstyv,
end of it_item.
DATA DECLARATIONS.
DATA: v_vbeln LIKE vbak-vbeln.
DATA: header LIKE bapisdhead1.
DATA: headerx LIKE bapisdhead1x.
DATA: item LIKE bapisditem OCCURS 0 WITH HEADER LINE.
DATA: itemx LIKE bapisditemx OCCURS 0 WITH HEADER LINE.
DATA: partner LIKE bapipartnr OCCURS 0 WITH HEADER LINE.
DATA: return LIKE bapiret2 OCCURS 0 WITH HEADER LINE.
DATA: lt_schedules_inx TYPE STANDARD TABLE OF bapischdlx
WITH HEADER LINE.
DATA: lt_schedules_in TYPE STANDARD TABLE OF bapischdl
WITH HEADER LINE.
DATA:
W_COUNTER TYPE I,
IT_NUM(6) TYPE C value '000010',
IT_LINE(4) TYPE C value '0001'.
CALL SCREEN 100.
HEADER DATA
header-doc_type = p_auart.
headerx-doc_type = 'X'.
header-sales_org = p_vkorg.
headerx-sales_org = 'X'.
header-distr_chan = p_vtweg.
headerx-distr_chan = 'X'.
header-division = p_spart.
headerx-division = 'X'.
headerx-updateflag = 'I'.
partner-partn_role = 'AG'.
partner-partn_numb = p_sold.
APPEND partner.
partner-partn_role = 'WE'.
partner-partn_numb = p_ship.
APPEND partner.
loop at it_item.
CLEAR ITEM.
item-material = it_item-p_matnr.
item-plant = it_item-p_plant.
item-target_qty = it_item-p_menge.
item-target_qu = 'ST'.
item-item_categ = it_item-p_itcat.
APPEND item.
W_COUNTER = W_COUNTER + 1.
endloop.
DO W_COUNTER TIMES.
itemx-updateflag = 'I'.
itemx-material = 'X'.
itemx-plant = 'X'.
itemx-target_qty = 'X'.
itemx-target_qu = 'X'.
itemx-item_categ = 'X'.
APPEND itemx.
ENDDO.
Fill schedule lines
LOOP AT IT_ITEM.
CLEAR lt_schedules_in.
lt_schedules_in-itm_number = IT_NUM.
lt_schedules_in-sched_line = IT_LINE.
lt_schedules_in-req_qty = IT_ITEM-p_menge.
APPEND lt_schedules_in.
IT_NUM = IT_NUM + 10.
IT_LINE = IT_LINE + 1.
ENDLOOP.
IT_NUM = '000010'.
IT_LINE = '0001'.
Fill schedule line flags
LOOP AT IT_ITEM.
CLEAR lt_schedules_inx.
lt_schedules_inx-itm_number = IT_NUM.
lt_schedules_inx-sched_line = IT_LINE.
lt_schedules_inx-updateflag = 'X'.
lt_schedules_inx-req_qty = 'X'.
APPEND lt_schedules_inx.
IT_NUM = IT_NUM + 10.
IT_LINE = IT_LINE + 1.
ENDLOOP.
Call the BAPI
CALL FUNCTION 'BAPI_SALESDOCU_CREATEFROMDATA1'
EXPORTING
sales_header_in = header
sales_header_inx = headerx
IMPORTING
salesdocument_ex = v_vbeln
TABLES
return = return
sales_items_in = item
sales_items_inx = itemx
sales_schedules_in = lt_schedules_in
sales_schedules_inx = lt_schedules_inx
sales_partners = partner.
LOOP AT return WHERE type = 'E' OR type = 'A'.
EXIT.
ENDLOOP.
IF sy-subrc = 0.
WRITE / return-message.
WRITE: / 'Error in creating document'.
ELSE.
COMMIT WORK AND WAIT.
WRITE: / 'Document ', v_vbeln, ' created'.
ENDIF.
DELIVERY ORDER CREATION
*PARAMETERS: p_vbeln LIKE vbak-vbeln.
DATA: BEGIN OF t_vbap OCCURS 0,
vbeln LIKE vbap-vbeln,
posnr LIKE vbap-posnr,
kwmeng LIKE vbap-kwmeng,
matnr LIKE vbap-matnr,
werks LIKE vbap-werks,
END OF t_vbap.
DATA: t_request TYPE STANDARD TABLE OF bapideliciousrequest
WITH HEADER LINE.
DATA: t_created TYPE STANDARD TABLE OF bapideliciouscreateditems
WITH HEADER LINE.
DATA: t_return TYPE STANDARD TABLE OF bapiret2 WITH HEADER LINE.
SELECT vbeln posnr kwmeng matnr werks
INTO TABLE t_vbap
FROM vbap
WHERE vbeln = v_vbeln
LOOP AT t_vbap.
t_request-document_numb = t_vbap-vbeln.
t_request-document_item = t_vbap-posnr.
t_request-quantity_sales_uom = t_vbap-kwmeng.
t_request-id = 1.
t_request-document_type = 'A'.
t_request-delivery_date = sy-datum.
t_request-material = t_vbap-matnr.
t_request-plant = t_vbap-werks.
t_request-date = sy-datum.
t_request-goods_issue_date = sy-datum.
t_request-goods_issue_time = sy-uzeit.
APPEND t_request.
ENDLOOP.
CALL FUNCTION 'BAPI_DELIVERYPROCESSING_EXEC'
TABLES
request = t_request
createditems = t_created
return = t_return.
READ TABLE t_return WITH KEY type = 'E'.
IF sy-subrc = 0.
MESSAGE e208(00) WITH 'Delivery creation error'.
ENDIF.
COMMIT WORK.
READ TABLE t_created INDEX 1.
WRITE: / 'Delivery Number : ',
t_created-document_numb.
CREATE TRANSFER ORDER
DATA: w_tanum TYPE ltak-tanum.
CALL FUNCTION 'L_TO_CREATE_DN'
EXPORTING
i_lgnum = '010'
i_vbeln = t_created-document_numb
IMPORTING
e_tanum = w_tanum
EXCEPTIONS
foreign_lock = 1
dn_completed = 2
partial_delivery_forbidden = 3
xfeld_wrong = 4
ldest_wrong = 5
drukz_wrong = 6
dn_wrong = 7
squit_forbidden = 8
no_to_created = 9
teilk_wrong = 10
update_without_commit = 11
no_authority = 12
no_picking_allowed = 13
dn_hu_not_choosable = 14
input_error = 15
OTHERS = 16
IF sy-subrc <> 0.
MESSAGE ID SY-MSGID TYPE SY-MSGTY NUMBER SY-MSGNO
WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4.
ENDIF.
COMMIT WORK AND WAIT.
WRITE: / 'Transfer order number',
w_tanum.
*&SPWIZARD: DECLARATION OF TABLECONTROL 'TAB_CON1' ITSELF
CONTROLS: TAB_CON1 TYPE TABLEVIEW USING SCREEN 0100.
*&SPWIZARD: OUTPUT MODULE FOR TC 'TAB_CON1'. DO NOT CHANGE THIS LINE!
*&SPWIZARD: UPDATE LINES FOR EQUIVALENT SCROLLBAR
MODULE TAB_CON1_CHANGE_TC_ATTR OUTPUT.
DESCRIBE TABLE IT_ITEM LINES TAB_CON1-lines.
ENDMODULE.
*& Module STATUS_0100 OUTPUT
text
module STATUS_0100 output.
SET PF-STATUS 'MENU'.
SET TITLEBAR 'xxx'.
endmodule. " STATUS_0100 OUTPUT
*& Module USER_COMMAND_0100 INPUT
text
module USER_COMMAND_0100 input.
IF SY-UCOMM EQ 'START'.
LEAVE to screen 0 .
ENDIF.
endmodule. " USER_COMMAND_0100 INPUT
*& Module APPEND_IT_ITEM INPUT
text
module APPEND_IT_ITEM input.
APPEND IT_ITEM.
CLEAR IT_ITEM.
endmodule. " APPEND_IT_ITEM INPUT
plz help me where the error isHi,
Do same as suggested by Ramesh. Add one user command button after clicking that do the looping and call new screen.
Ashven. -
How to update the table when change list item in classic report
hi ,
i worked with apex 4.2 and i create normal classic report with one select list(named loved)Column ,now i want to update table when user change the list with new value ,i can't create dynamic action to do this,i create check box with primary key and loop for check item to update the table but i can't get the value of list item. and for more speed the user want to do this when change the list value.
my question
1- how to do this by javascript and get the value from list item and update the table with new value
2- is i must use API to create list item so i can get the value of item in report or what.
Thanks
AhmedI coded the following to give you direction:
1. In the "Element Attributes" section of the DEPTNO column, I call a javascript function as:
onchange = "javascript:updateTable(this);"2. I wrote a simple javascript function that shows an alert when the user changes the select list as:
<script language="JavaScript" type="text/javascript">
function updateTable(pThis)
var vRow = pThis.id.substr(pThis.id.indexOf('_')+1);
alert('Row# - '+ vRow + ' has the value - ' + pThis.value);
</script>Now, you can call a AJAX on-demand process inside the javascript function to update the database value. -
How to check if a constraint existed in the table and drop it?
Hi all,
I want to drop a constraint from a table. I do not know if this constraint already existed in the table. So I want to check if this exists first.
Below is my query:
DECLARE
itemExists NUMBER;
BEGIN
itemExists := 0;
SELECT COUNT(CONSTRAINT_NAME) INTO itemExists
FROM ALL_CONSTRAINTS
WHERE UPPER(CONSTRAINT_NAME) = UPPER('my_constraint');
IF itemExists > 0 THEN
ALTER TABLE my_table DROP CONSTRAINT my_constraint;
END IF;
END;
Here is the error I got when I executed the above query:
ORA-06550: line 11, column 5: PLS-00103: Encountered the symbol "ALTER" when expecting one of the following: ( begin case declare exit for goto if loop mod null pragma raise return select update while with <an identifier> <a double-quoted delimited-identifier> <a bind variable> << continue close current delete fetch lock insert open rollback savepoint set sql execute commit forall merge pipe purge
Please help me with this!
Greatly appreciate!
Khoi LeYes, I also tried to put the pl-sql in the Execute Immediate. However, the error still remains
EXECUTE IMMEDIATE 'DECLARE
itemExists NUMBER;
BEGIN
itemExists := 0;
SELECT COUNT(CONSTRAINT_NAME) INTO itemExists
FROM ALL_CONSTRAINTS
WHERE UPPER(CONSTRAINT_NAME) = UPPER('my_constraint');
IF itemExists > 0 THEN
ALTER TABLE my_table DROP CONSTRAINT my_constraint;
END IF;
END';
I execute the above code via running the batch file.
Here is the error after I ran the batch file:
ORA-06550: line 11, column 5:
PLS-00103: Encountered the symbol "ALTER" when expecting one of the following:
( begin case declare exit for goto if loop mod null pragma
raise return select update while with <an identifier>
<a double-quoted delimited-identifier> <a bind variable> <<
continue close current delete fetch lock insert open rollback
savepoint set sql execute commit forall merge pipe purge
The symbol "lock was inserted before "ALTER" to continue.
ORA-06550: line 11, column 53:
PLS-00103: Encountered the symbol "DROP" when expecting one of the following:
. , @ in <an identifier>
<a double-quoted delimited-identifier> partition subpartition
ORA-06512: at line 2117
I can not manually drop it. I need to do this via running an update script file.
Is there a different way to accomplish this?
Thank you very much! -
How to use the table maintenance events for validating the input entries..?
Hi,
I have created a Z table with 6 fields in which all are KEY fields. All are of CHAR type. I have created the Table Maintenance Generator for the same. While maintaining the entries in the table, even though I maintain a blank entry for a field it is saving the entry. But, I don't want that way. All the fields are mandatory in my table. One should enter all the fields. Otherwise it should not allow to save the entry. So, I think it can be done using the Table Maintenance Events. can someone tell me how to use the Table Maintenance Events. and which event to use for my reuqirement and what is the logic to be written.
Or Is there any other way to solve my problem.
Please share your inputs. Thanks in advance.
Best regards,
paddu.In the table maintenance generator, Environment --> Modifications --> Events then a screen will be appear here,we need to create the Events.In the EVENTS screen, press new Entries, there give 01(Before Saving the Data in the Database) and give a name(This will become a PERFORM), then click the Editor pushbutton, this will be there at the right side of the entry, then a popup will be appear, you can create an include program, there inside of the include program write ur code.
Here is documentation for Event 01(Before Saving the Data in the Database )
Event 01: Before Saving the Data in the Database
Use
This event occurs before new, changed or deleted entries are written to the database. Other activities can be performed, for example:
hidden entry processing
fill hidden fields
flag data to be written to hidden tables after the database change.
To have the changes saved by the central maintenance dialog routines, SY-SUBRC must be set to 0 at the end of the routine.
Realization
This event has no standard routine. The following global data is available for the realization of the user routine:
internal table TOTAL
field symbols
field symbols <ACTION> and <ACTION_TEXT>
<STATUS>-UPD_FLAG
If internal table data are to be changed before saving, t he changes should be made in both the internal table TOTAL and in the internal table EXTRACT.
FORM abc.
DATA: F_INDEX LIKE SY-TABIX. "Index to note the lines found
LOOP AT TOTAL.
IF <ACTION> = desired constant.
READ TABLE EXTRACT WITH KEY <vim_xtotal_key>.
IF SY-SUBRC EQ 0.
F_INDEX = SY-TABIX.
ELSE.
CLEAR F_INDX.
ENDIF.
(make desired changes to the line TOTAL)
MODIFY TOTAL.
CHECK F_INDX GT 0.
EXTRACT = TOTAL.
MODIFY EXTRACT INDEX F_INDX.
ENDIF.
ENDLOOP.
SY-SUBRC = 0.
ENDFORM.
Regards,
Joy. -
How to validate the dates in the table control ?
How to validate the dates in the table control ?
Can I write like this ?
LOOP AT it_tab .
CHAIN.
FIELD : it_tab-strtdat,it_tab-enddat.
module date_validation.
ENDCHAIN.
ENDLOOP.
Module Date_validation.
ranges : vdat type sy-datum.
vdat-sign = 'I'.
VDAT-LOW = it_tab-STRTDAT.
VDAT-HIGH = it_tab-ENDDAT.
VDAT-OPTION = 'BT'.
APPEND VDAT.
WHAT CODE I have to write here to validate ?
and If I write like this How can we know which is the current row being add ?
It loops total internal table ..?
Bye,
Muttu.Hi,
I think there is no need to put chain endchain.
To do validation you have to write module in PAI which does required validations.
Thanks
DARSHAN PATEL
Maybe you are looking for
-
Enterprise manager 11g - win 2003 - sys/passwd error
We have windows 2003 server and we are running 2 oracle databases in version 11g. We were successfully configured EM for one database and when we tried for the other database we encountered configuration errors and the log file doesnt carry that much
-
How do I back up My contacts from My iphone to My computer
I was told I can use itunes to back up My contact but I can't seem to find how I could do that?
-
Getting Receiver Agreement issue in IDOC to File scenario
Hi Gurus, Need your help. I'm working on a IDOC to File scenario. I'm using CREMDM.CREMDM04 as outbound Interface & small structure VEND_FILE_IN_MI as Inbound Interface. Though I've configured the receiver Communication Channel as a File
-
Can't add to Address Book via Mail App
I had some permissions problems a while back (I did an "apply to enclosing folders" on my system disk - don't ask - I'm an idiot) and while I fixed them by creating a new system and migrating the old system data to the new system, some problems stil
-
Getting waved-horizontal lines in my imagery just after working in photoshop...sending to files as with after completing some applications, such as printing. Nothing is wrong with my Mac...Issue does not occur every time I go into using Photoshop?