Hi bulk order background job
Hi,
Can u tell me what the issues can i rise to client while i prepare the functional spec.
Issue:
In SAP Standard the bulk process orders must be confirmed before the goods issue posting.
The XXXXX process requires that at first the goods issue posting will be done and after that the bulk process order will be confirmed with the correct dispatch quantity.
Now we need a job/program that selects the bulk deliveries with goods issue and confirm the adapted process orders.
At deliveries with reference to a sales order one can find the process order number in the sales order.
At deliveries with reference to a stock transfer purchase order there is no link to a bulk process order in the system.
Now the job on the P42 finds the right process order on the basis of material and batch number.
Pl help as early as u can
Thanks in advance
Message was edited by:
satish satish
Message was edited by:
satish satish
Hi,
Its not possible to use GUI_UPLOAD in background mode as the SAP system is completely independent and wont allow any GUI based operations. You can try transfering the file to application server and then try running the report as a background job.
Regards,
Vik
Similar Messages
-
Schedule Background Job : Remove delivery Block in Sales order
Hi Gurus,
I have a requirement to select all sales orders as per a condition and remove delivery block at
VA02-> Go to -> Header -> Status
For that I have to write a program which will be run only in background and i have to schedule background job for the same.
I have a parameter at selection - No of records
If no of records = 500 , I have to submit 500 jobs ie one job each for each sales order for removing delivery block.
I need to know
1) Which function module/bapi I can use to remove delivery block at sales order header level.
For blocked delivery the status is 'BSTK" . to remove block i need to change status to "RSTK".
2) How to schedule a background job for my program and how to submit one job each for each sales order.
Regards
Avi.Hi Avi,
Would like to seek for your advice. I am facing the same scenario too which is to delete the delivery block but is deletion of the delivery block is done in the user exit MV45AFZZ. The subroutine which needs to have the extra logic of deleting the delivery block is USEREXIT_SAVE_DOCUMENT_PREPARE.
Need your advice on how do you solve this scenario? Thanks in advance. -
What to add to an program code in order to trigger an background job
Hi there
I wander what to add to an program code in order to trigger an event which consequently can trigger an background job
thx in advanceCheck this code:
DATA : v_jobhead LIKE tbtcjob.
DATA : v_jobcount LIKE tbtcjob-jobcount.
DATA : v_eventparm LIKE tbtcjob-eventparm.
DATA : v_flg_released TYPE c.
DATA: e_error.
DATA: running LIKE tbtcv-run.
TYPES: esp1_boolean LIKE boole-boole.
CONSTANTS: esp1_false TYPE esp1_boolean VALUE ' ',
esp1_true TYPE esp1_boolean VALUE 'X'.
CONSTANTS: true TYPE boolean VALUE esp1_true,
false TYPE boolean VALUE esp1_false.
PARAMETERS: v_jobnam LIKE tbtcjob-jobname,
v_report LIKE sy-repid,
v_varian LIKE raldb-variant,
v_uname LIKE sy-uname.
START-OF-SELECTION.
* add the new job
CALL FUNCTION 'JOB_OPEN'
EXPORTING
* delanfrep = 'X'
jobname = v_jobnam
IMPORTING
jobcount = v_jobcount
EXCEPTIONS
cant_create_job = 1
invalid_job_data = 2
jobname_missing = 3
OTHERS = 4.
IF sy-subrc <> 0.
e_error = true.
ELSE.
CALL FUNCTION 'JOB_SUBMIT' " or you can use SUBMIT statement as well.
EXPORTING
authcknam = v_uname
jobcount = v_jobcount
jobname = v_jobnam
report = v_report
variant = v_varian
EXCEPTIONS
bad_priparams = 1
bad_xpgflags = 2
invalid_jobdata = 3
jobname_missing = 4
job_notex = 5
job_submit_failed = 6
lock_failed = 7
program_missing = 8
prog_abap_and_extpg_set = 9
OTHERS = 10.
IF sy-subrc <> 0.
e_error = true.
ELSE.
CALL FUNCTION 'JOB_CLOSE'
EXPORTING
* EVENT_ID = IC_WWI_WORKPROCESS_EVENT
* EVENT_PARAM = V_EVENTPARM
* EVENT_PERIODIC = 'X'
jobcount = v_jobcount
jobname = v_jobnam
strtimmed = 'X'
IMPORTING
job_was_released = v_flg_released
EXCEPTIONS
cant_start_immediate = 1
invalid_startdate = 2
jobname_missing = 3
job_close_failed = 4
job_nosteps = 5
job_notex = 6
lock_failed = 7
OTHERS = 8.
IF sy-subrc <> 0.
e_error = true.
ELSE.
DO.
CALL FUNCTION 'SHOW_JOBSTATE'
EXPORTING
jobcount = v_jobcount
jobname = v_jobnam
* IMPORTING
* ABORTED =
* FINISHED =
* PRELIMINARY =
* READY =
* running =
* SCHEDULED =
EXCEPTIONS
jobcount_missing = 1
jobname_missing = 2
job_notex = 3
OTHERS = 4.
IF sy-subrc <> 0.
e_error = true.
MESSAGE ID sy-msgid TYPE sy-msgty NUMBER sy-msgno
WITH sy-msgv1 sy-msgv2 sy-msgv3 sy-msgv4.
ENDIF.
IF running = space.
EXIT.
ENDIF.
ENDDO.
ENDIF.
ENDIF.
ENDIF. -
Background job- getting printed automatically
In my BDC Program i have submitted Session for Background Processing using
Submit RSBDCSUB..........
my code is also given below..The problem is after the user executes the program, background job is automatically going to his Local printer and getting printed. HOw to avoid this?
CALL FUNCTION 'JOB_OPEN'
EXPORTING
jobname = gf_jobname
IMPORTING
jobcount = gf_jobcount
EXCEPTIONS
cant_create_job = 1
invalid_job_data = 2
jobname_missing = 3
OTHERS = 4.
*-Submit the selected sales orders for changes.
SUBMIT rsbdcsub AND RETURN
WITH mappe = v_sess
WITH von = sy-datum
WITH bis = sy-datum
WITH z_verarb = 'X'
WITH fehler = space
WITH batchsys = space
WITH logall = space
USER sy-uname VIA JOB gf_jobname NUMBER gf_jobcount.
IF sy-subrc NE 0.
MESSAGE i999 WITH text-013.
EXIT.
ENDIF.
*-Close job and start immediately.
CALL FUNCTION 'JOB_CLOSE'
EXPORTING
jobcount = gf_jobcount
jobname = gf_jobname
strtimmed = 'X'
IMPORTING
job_was_released = gf_release
EXCEPTIONS
cant_start_immediate = 1
invalid_startdate = 2
jobname_missing = 3
job_close_failed = 4
job_nosteps = 5
job_notex = 6
lock_failed = 7
OTHERS = 8.On SUBMIT use
SUBMIT zxxxxxx TO SAP-SPOOL
WITHOUT SPOOL DYNPRO
IMMEDIATELY ' '
KEEP IN SPOOL 'X'
DESTINATION printer
NUMBER number
AND RETURN -
Failed to Run OLE Excel program in background JOB (SM36)
Please help.
I have write a program to use OLE to create a Excel file.
The program can run successful in front end workstation. However, when I run the program in background job by SM36.
The statement "CREATE OBJECT EXCEL 'EXCEL.APPLICATION'" return with error "SY-SUBRC = 2".
How can I solve it ?
Can OLE Excel be run on background job ?
Thanks so much,
MarkHi Mark:
Your need is a very common one. I also was asked to generate an Excel in Background.
It is not possible to work with OLE in background mode.
The reason is: In background mode there is no presentation server. OLE is executed in presentation server.
Below I paste the code I wrote to solve my problem.
This class sends a mail with an excel attached. The Excel content will be the internal table you pass to the class. But the Excel is not binary, it is a plain text file, separated by tabulators. Anyway, when you open it with Excel, the columns are properly shown.
Sorry. Comments are in spanish, I don't have time to translate it.
I kindly ask to everybody which want to use it to keep my name in the code.
* Autor: Jordi Escoda, 30/10/2008.
* Descripción: Esta clase genera un correo electrónico destinado a
* una persona, adjuntando el contenido de una tabla interna como
* Excel (campos separados por tabuladores).
* La virtud de esta clase es su sencillez de utilización. Para lanzar
* el mail con el excel adjunto basta con declarar la tabla interna,
* llenarla, colocar el asunto del mensaje, el destinatario, el nombre
* del excel adjunto, y pasar la tabla interna.
* Ejemplo de utilización:
* DATA: lc_mail TYPE REF TO cl_mail_builder_xls_attach.
* DATA: lt_anla TYPE STANDARD TABLE OF anla.
* SELECT * INTO TABLE lt_anla FROM anla.
* CREATE OBJECT lc_mail.
* CALL METHOD lc_mail->set_subject( 'Excel adjunto' ).
* CALL METHOD lc_mail->set_recipient( 'XXX@XXXDOTCOM' ).
* CALL METHOD lc_mail->set_attach_filename( 'ANLA' ).
* APPEND 'Cuerpo del mensaje' TO lt_body.
* APPEND 'Saludos cordiales' TO lt_body.
* CALL METHOD lc_mail->set_bodytext( lt_body ).
* CALL METHOD lc_mail->set_attach_table( lt_anla ).
* CALL METHOD lc_mail->send( ).
* CLASS cl_mail_builder_xls_attach DEFINITION
CLASS cl_mail_builder_xls_attach DEFINITION.
PUBLIC SECTION.
METHODS: set_subject
IMPORTING im_subject TYPE so_obj_des,
set_bodytext
IMPORTING im_body TYPE bcsy_text,
set_recipient
IMPORTING im_recipient TYPE ad_smtpadr,
set_attach_table
IMPORTING im_table TYPE ANY TABLE,
set_attach_filename
IMPORTING im_attach_name TYPE sood-objdes,
send.
PRIVATE SECTION.
CONSTANTS:
c_tab TYPE c VALUE cl_bcs_convert=>gc_tab,
c_crlf TYPE c VALUE cl_bcs_convert=>gc_crlf,
c_singlequote TYPE c VALUE '.
DATA: l_recipient_addr TYPE ad_smtpadr.
DATA: send_request TYPE REF TO cl_bcs,
document TYPE REF TO cl_document_bcs,
recipient TYPE REF TO if_recipient_bcs,
bcs_exception TYPE REF TO cx_bcs.
DATA: binary_content TYPE solix_tab,
size TYPE so_obj_len.
DATA: l_string TYPE string,
l_body_text TYPE bcsy_text,
l_subject TYPE so_obj_des,
l_attach_name TYPE sood-objdes.
METHODS: create_binary_content,
get_dataelement_medium_text
IMPORTING im_table_name TYPE tabname
im_field_name TYPE fieldname
EXPORTING ex_medium_text TYPE scrtext_m.
ENDCLASS. "cl_mail_builder_xls_attach DEFINITION
* CLASS cl_mail_builder_xls_attach IMPLEMENTATION
CLASS cl_mail_builder_xls_attach IMPLEMENTATION.
METHOD set_bodytext.
l_body_text[] = im_body[].
ENDMETHOD. "add_bodytext
METHOD set_subject.
l_subject = im_subject.
ENDMETHOD. "add_subject
METHOD set_attach_filename.
l_attach_name = im_attach_name.
ENDMETHOD. "add_subject
METHOD set_recipient.
l_recipient_addr = im_recipient.
ENDMETHOD. "add_subject
METHOD set_attach_table.
* Rellena en un string el contenido de la tabla interna recibida
DATA: ref_to_struct TYPE REF TO cl_abap_structdescr.
DATA: my_like TYPE fieldname,
nombretabla TYPE tabname,
nombrecampo TYPE fieldname,
texto_mediano TYPE scrtext_m.
DATA: l_idx TYPE i,
l_valorcampo(16) TYPE c,
l_long TYPE i.
FIELD-SYMBOLS: <fs_linea> TYPE ANY,
<fs_campo> TYPE ANY.
FIELD-SYMBOLS: <comp_descr> TYPE abap_compdescr.
CHECK NOT im_table[] IS INITIAL.
* Línea con los nombres de las columnas.
CLEAR l_string.
LOOP AT im_table ASSIGNING <fs_linea>.
* Toma los atributos del componente
ref_to_struct =
cl_abap_structdescr=>describe_by_data( <fs_linea> ).
LOOP AT ref_to_struct->components ASSIGNING <comp_descr>.
ASSIGN COMPONENT <comp_descr>-name
OF STRUCTURE <fs_linea> TO <fs_campo>.
* Obtenemos el origen de donde proviene (like). Ej:BKPF-BUDAT
DESCRIBE FIELD <fs_campo> HELP-ID my_like.
SPLIT my_like AT '-' INTO nombretabla nombrecampo.
CALL METHOD get_dataelement_medium_text
EXPORTING
im_table_name = nombretabla
im_field_name = nombrecampo
IMPORTING
ex_medium_text = texto_mediano.
IF texto_mediano IS INITIAL.
CONCATENATE l_string <comp_descr>-name INTO l_string.
ELSE.
CONCATENATE l_string texto_mediano INTO l_string.
ENDIF.
AT LAST.
CONCATENATE l_string c_crlf INTO l_string.
EXIT.
ENDAT.
CONCATENATE l_string c_tab INTO l_string.
ENDLOOP.
EXIT.
ENDLOOP.
* Contenido de la tabla
LOOP AT im_table ASSIGNING <fs_linea>.
* Toma los atributos del componente
ref_to_struct =
cl_abap_structdescr=>describe_by_data( <fs_linea> ).
LOOP AT ref_to_struct->components ASSIGNING <comp_descr>.
* Asignamos el componente ue tratamos, para obtener
* el valor del mismo
ASSIGN COMPONENT <comp_descr>-name OF STRUCTURE <fs_linea>
TO <fs_campo>.
CASE <comp_descr>-type_kind.
WHEN 'P'. "Packed Number
* Convierte a caracter
WRITE <fs_campo> TO l_valorcampo.
CONCATENATE l_string l_valorcampo INTO l_string.
WHEN OTHERS.
l_long = STRLEN( <fs_campo> ).
IF l_long > 11 AND <fs_campo> CO ' 0123456789'.
* El Excel muestra un número tal como 190000000006
* en formato 1,9E+11.
* Para eviarlo, los números de más de 11 dígitos los
* concatenamos con comillas simples.
CONCATENATE l_string c_singlequote
<fs_campo> c_singlequote INTO l_string.
ELSE.
CONCATENATE l_string <fs_campo> INTO l_string.
ENDIF.
ENDCASE.
AT LAST.
* Añade CRLF
CONCATENATE l_string c_crlf INTO l_string.
EXIT.
ENDAT.
* Añade tabulador
CONCATENATE l_string c_tab INTO l_string.
ENDLOOP.
ENDLOOP.
create_binary_content( ).
ENDMETHOD. "set_attach_table
METHOD create_binary_content.
DATA: l_size TYPE so_obj_len.
* convert the text string into UTF-16LE binary data including
* byte-order-mark. Mircosoft Excel prefers these settings
* all this is done by new class cl_bcs_convert (see note 1151257)
TRY.
cl_bcs_convert=>string_to_solix(
EXPORTING
iv_string = l_string
iv_codepage = '4103' "suitable for MS Excel, leave empty
iv_add_bom = 'X' "for other doc types
IMPORTING
et_solix = binary_content
ev_size = size ).
CATCH cx_bcs.
MESSAGE e445(so).
ENDTRY.
ENDMETHOD. "create_binary_content
METHOD send.
DATA: l_sent_to_all TYPE os_boolean.
TRY.
* create persistent send request
send_request = cl_bcs=>create_persistent( ).
* create and set document with attachment
* create document object
document = cl_document_bcs=>create_document(
i_type = 'RAW'
i_text = l_body_text
i_subject = l_subject ).
* add the spread sheet as attachment to document object
document->add_attachment(
i_attachment_type = 'xls'
i_attachment_subject = l_attach_name
i_attachment_size = size
i_att_content_hex = binary_content ).
* add document object to send request
send_request->set_document( document ).
* add recipient (e-mail address)
recipient =
cl_cam_address_bcs=>create_internet_address(
l_recipient_addr ).
* add recipient object to send request
send_request->add_recipient( recipient ).
* send document
l_sent_to_all = send_request->send(
i_with_error_screen = 'X' ).
COMMIT WORK.
IF l_sent_to_all IS INITIAL.
MESSAGE i500(sbcoms) WITH l_recipient_addr.
ELSE.
MESSAGE s022(so).
ENDIF.
CATCH cx_bcs INTO bcs_exception.
MESSAGE i865(so) WITH bcs_exception->error_type.
ENDTRY.
ENDMETHOD. "lcl_mail_xls_attachment
METHOD get_dataelement_medium_text.
DATA: lt_fld_info TYPE STANDARD TABLE OF dfies,
wa_fld_info TYPE dfies.
* Busca en el diccionario los datos del campo
CALL FUNCTION 'DDIF_FIELDINFO_GET'
EXPORTING
tabname = im_table_name
fieldname = im_field_name
langu = sy-langu
TABLES
dfies_tab = lt_fld_info
EXCEPTIONS
not_found = 1
internal_error = 2
OTHERS = 3.
CLEAR ex_medium_text.
IF sy-subrc = 0.
READ TABLE lt_fld_info INDEX 1 INTO wa_fld_info.
* Si lo ha podido tomar del diccionario...
IF NOT wa_fld_info-scrtext_m IS INITIAL.
* Toma el nombre del nombre de campo del diccionario
ex_medium_text = wa_fld_info-scrtext_m.
ENDIF.
ENDIF.
ENDMETHOD. "get_dataelement_medium_text
ENDCLASS. "cl_mail_builder_xls_attach IMPLEMENTATION -
Program works but background job for that program fails....
I have a requirement where I have to collect the details of the purchase order and put the details in XML file format and FTP the XML file to an external third party FTP Server.
To realize this I developed a report program which follows following logic.
1) First I collected the PO details by calling the BAPI BAPI_PO_GETDETAIL1.
2) Then using the following link "/people/r.eijpe/blog/2005/11/10/xml-dom-processing-in-abap-part-i--convert-an-abap-table-into-xml-file-using-sap-dom-approach
I converted these PO details to the XML file format that the third party people accept.
In the code I used u201CCALL METHOD cl_gui_frontend_services=>gui_downloadu201D and in this process first the XML file is generated and is getting stored on my deskytop.
3) Then I called HTTP_SCRAMBLE, FTP_CONNECT, FTP_COMMAND , FTP_DISCONNECT and RFC_CONNECTION_CLOSE.
This works perfectly well and each time I execute the report the file is getting FTPu2019ed to the third party FTP server.
Now I tried to schedule a batch job for this and the batch job fails with follwing errors
02/25/2009 15:08:47 Error in Control Framework
Message Class = FES
Message Number = 022
Message Type = E
02/25/2009 15:08:47 Job cancelled after system exception ERROR_MESSAGE
Message Class = 00
Message Number = 564
Message Type = A
Can some one tell me what is going wrong. My report works perfect in front end but fails if I try to schedule a background job for it in SM36.
Can you please tell me whatz going wrong with batch job? Any Help is highly appreciated.
Regards,
JEssica SAmRobert...Thanks for the reply...
I am using follwing code
l_xml_size = l_ostream->get_num_written_raw( ).
CALL METHOD cl_gui_frontend_services=>gui_download
EXPORTING
bin_filesize = l_xml_size
filename = FILEPATH
filetype = 'BIN'
CHANGING
data_tab = l_xml_table
EXCEPTIONS
OTHERS = 24.
IF sy-subrc <> 0.
MESSAGE ID sy-msgid TYPE sy-msgty NUMBER sy-msgno
WITH sy-msgv1 sy-msgv2 sy-msgv3 sy-msgv4.
Now what changes should i make..where should i store my XML file then instead of my desktop?
and whih Function Module should i Use.. -
Background Job " RDDVERSI" getting terminated
Hi gurus,
When we check in SM37, We are seeing a background job that is getting terminated. In the job log it says DATASET_NOT_OPEN, Job cancelled. It is trying to run "RDDVERSI" program.
It is creating a Dump in ST22 and when we check the Dump in ST22, it says "The file "/usr/sap/trans/tmp/D01V985854.P01" has not been opened".
I checked the log in the trans directory and it gives me following error. Path of the Log "usr/sap/trans/log/D01V985854.P01".
1AEPU320 See job log"RDDVERSI""07435800""P01"
1 ETP184 CREATE VERSIONS BEFORE IMPORT
1 ETP110 end date and time : "20070912074448"
1 ETP111 exit code : "12"
1 ETP199 ######################################
1 ETP199X######################################
1 ETP184 CREATE VERSIONS BEFORE IMPORT
1 ETP101 transport order : "D01K985854"
1 ETP102 system : "P01"
1 ETP108 tp path : "tp"
1 ETP109 version and release : "340.16.24" "640"
1 ETP198
1AETR012XProgram terminated (job: "RDDVERSI", no.: "07460000")
1AEPU320 See job log"RDDVERSI""07460000""P01"
1 ETP184 CREATE VERSIONS BEFORE IMPORT
1 ETP110 end date and time : "20070912074651"
1 ETP111 exit code : "12"
1 ETP199 ######################################
I think when it is trying to import a transport request, it is trying to create a version of it and it is not able to create that.
Can anybody help me in solving this problem?
Any Help is appreciated
Regards,
Swaroop.Can you run this program in the foreground with a user that has the same permissions. If you get an authorization error again, check with transaction se53 on which objects you are missing authorization.
For these objects you can create an additional authorization profile...
Kind regards,
Mark -
MDVP only working as background job
Hello,
I was working on the ATP check when i discovered the only way to actually perform this check correctly was to execute it as a background job. When executing online, the stock is just not committed (even with full confirmation logic set on in the MRP group).
It only works fine from the planned order.
Isn't it possible to run MDVP online ??
Any enlightements on this topic appreciated.
OlivierHi,
You can run the availability check in background with program RLD05000. You have to create variant and schedule this program in batch from SM36 transaction, Out out you can check in spool.
If helps rewards your points.
Regards
TAJUDDIN -
Hi everyone,
ATP is being a real struggle for us and we are for a required balance of not missing out on deadlines and improving the service levels if possible within the constraints. For a product not in stock it or available at a later date, the MAD comes in perfectly on the basis of the RLT or in house production time set up. It gives it's correct dates and are communicated - the system proposes the MAD, loading date etc on the basis of which the shipping personnel run the VL10C.
However, if, in a day or two (before the proposed delivery creation date), for any reason, we re-schedule a batch earlier or get returns for non quality reasons, the dates remain as they were (which of course, is the way it should be considering they were promised that way) but now, we are in a position to ship the goods out earlier. However, the shippers won't see it in VL10C as they would run it for their usual parameters.
How can we get around this? Assuming a big range of products and hundreds of orders a day, it isn't feasible to do a CO06 individually. Is there any way to re-run the ATP in the background or something and it's report gives us the changes the system made, the new proposed dates etc?
Or any other suggestions to handle these situations?
Appreciate any help or guidance for any more research or answers...
Many thanks.Hi,
You can write a BDC program to open that order with the transaction VA02 and click the avaialbility check button once again. Based on that the availability check program will fire once again. You can run this BDC program as a background job!!!!!!!
If it helps give me points na!!!!!!!!!!!!!!
Chandra -
Hi Gurus,
We want to have certain pruchase reqs automatically converted to POs via ME59N and we want to set it up as a background job. I will have filled certain fields on ME59N. How can this be acheived?
Thanks
AnushaCreate and schedule a background job in SM36 for program RM06BB30 (ME59N) with a variant of ME59N that selects the requisitions you wish to convert to orders. You can schedule this job to run once or periodically depending on your requirements.
Regards. -
Is it possible to run the STMS transaction as a background job? You might ask, why would you want to do this? Well, every week we make a Flash copy of our production system to system I will call MF1. MF1 is then used for the next week as a "production like" system to test production break fixes and the like. The problem is, by default TMS is not turned on, on the newly created MF1 system. Our Basis team never seems to remember to do that. Instead, they have asked me to develop a simple BDC session that can be scheduled after a certain event.
This seems like a simple enough request but is problematic. One problem is, this transaction can only be run from client 000 and as a developer I do not have an account there. Another is the fact that MF1 is not a development client and I am not sure if the screen mappings will be the same if I don't develop it there.
Is this a totally wrong approach to the problem, or is there an easier way to Connect TMS without human intervention?Create and schedule a background job in SM36 for program RM06BB30 (ME59N) with a variant of ME59N that selects the requisitions you wish to convert to orders. You can schedule this job to run once or periodically depending on your requirements.
Regards. -
Can ABAP proxy to consume WSDL file be run as background job for every10min
Hi all,
I have a requirement where I need to build an interface which gatheru2019s the purchase order details and send to external third party software in their required format (as an XML file).
So I should be the first point of contact and should trigger the interface each time a purchase order is generated.
So I am thinking that I should develop a background job for every 10 minutes which will look for new purchase orders and gathers the information of the purchase orders and send them to external third party software in their required format.
I have gone through all the SAP forums and e-Learning but still I have confusion in regards to how is it possible technically? Can some one guide me with some information on the same.
I have a little bit of confusion and want to know few things.
1) Should I create a web service or should I consume a web service?
2) If I need to consume a web service, then can I write an ABAP proxy to be run in background fro evry 10 minutes? I mean can we run ABAP proxy as a batch job in the background?
3) Is there a difference between consuming an XML file and WSDL File?
Any Help will be highly appreciated.
Regards,
Jessica.There are two options (as I know) to generate XML file.
1. Use XML TRANSFORMATION to get the XML string based your TRANSFORMATION. You can input your data and get back the XML string. Download this string to a file
Test XML generation program is:
types: begin of ty_data,
num type i,
end of ty_data.
DATA: itab TYPE standard table of ty_Data,
la_data like line of itab,
xmlstr TYPE string.
DO 3 TIMES.
la_data-num = sy-index.
APPEND la_data TO itab.
ENDDO.
CALL TRANSFORMATION ztest_np1
SOURCE table = itab
RESULT XML xmlstr.
CALL FUNCTION 'DISPLAY_XML_STRING'
EXPORTING xml_string = xmlstr.
My ZTEST_NP1 transformation. To create a transformation, click on the transformation in the "CALL TRANSFORMATION ztest_np1" statement. Select Simple transformation type.
<?sap.transform simple?>
<tt:transform xmlns:tt="http://www.sap.com/transformation-templates">
<tt:root name="table"/>
<tt:template>
<table>
<tt:loop ref=".table">
<item>
<tt:value ref="NUM"/>
</item>
</tt:loop>
</table>
</tt:template>
</tt:transform>
XML string is like:
<?xml version="1.0" encoding="utf-8" ?>
<table>
<item>1</item>
<item>2</item>
<item>3</item>
</table>
To use this option, you have to create a transformation and than use it to generate the XML string.
Check this SAP Help
http://help.sap.com/saphelp_nw04s/helpdata/en/e3/7d4719ca581441b6841f1054ff1326/frameset.htm
2. You can concatenate and create an XML string and download that string into a file.
Regards,
Naimesh Patel -
Certain Maintenance Plan not getting scheduled in the background job
Hi Gurus,
I am facing an issue here.
A weekly background job (RISTRA20) runs every weekend and schedules the maintenance plans.
But we have noticed that some maintenance plans are not getting scheduled. i.e no orders or schedule is getting generated.
When I run IP30 manually for these plans then the schedule gets generated and orders get called.
I have checked up the background job and it is running fine.
Also, i have noticed a similarity in all these plans which are not getting scheduled. There schedule has been restarted (through IP10) at somepoint or the other.
But i don't see any direct impact of this?
Can any of you provide some help on this?? Points will be rewarded.
Thanks and regards,
Nitin SainiHi Narender,
Thanks for replying.
The message number for 'Groups don't match' is ME303.
I think this does not have anything to do with the restart as i have done further investigation.
Whenever I run IP30 with sortfield input as AS02*, i get the error as mentioned above for a certain number of maintenance plans while the remaining plans get scheduled.
If i run IP30 for any other sort fields, it runs fine and i don't encounter the error
mentioned above.
If you send me ur email address, i could forward you screen-shots of the issue. -
Sending output to a printer in a background job
I did a quick search on this issue and found a few suggestions. One suggestion was to use something like this:
SUBMIT RSFLFIND ... TO SAP-SPOOL DESTINATION 'LT50'.
I looked at the SAP help for SUBMIT and it was quite helpful however it raised a few questions. The program that am writing will be run in the background. I want to create a simple report that will print at several different printers when it is done. Looking at the help section (specifically this part):
"The SUBMIT statement accesses an executable program rep. The executable program is executed as described under Calling Executable Reports.
The program name rep can either be specified directly or as the content of a character-like data object name. The data object name must contain the name of the program to be accessed in block capitals. If the program specified in name is not found, an irretrievable exception is generated.
The selscreen_options additions can be used to determine the selection screen for the program accessed and to supply it with values.
The list_options additions allow you to influence the output medium and the page size in the basic list for the program accessed.
You can schedule the program for background processing by specifying job_options. "
It seems like I would create a simple program like this:
DATA: number TYPE tbtcjob-jobcount,
name TYPE tbtcjob-jobname VALUE 'JOB_TEST',
print_parameters TYPE pri_params.
CALL FUNCTION 'JOB_OPEN'
EXPORTING
jobname = name
IMPORTING
jobcount = number
EXCEPTIONS
cant_create_job = 1
invalid_job_data = 2
jobname_missing = 3
OTHERS = 4.
IF sy-subrc = 0.
SUBMIT submitable TO SAP-SPOOL
SPOOL DESTINATION 'LT50'.
VIA JOB name NUMBER number
AND RETURN.
IF sy-subrc = 0.
CALL FUNCTION 'JOB_CLOSE'
EXPORTING
jobcount = number
jobname = name
strtimmed = 'X'
EXCEPTIONS
cant_start_immediate = 1
invalid_startdate = 2
jobname_missing = 3
job_close_failed = 4
job_nosteps = 5
job_notex = 6
lock_failed = 7
OTHERS = 8.
IF sy-subrc <> 0.
ENDIF.
ENDIF.
ENDIF.
That will then call the background job and the output will go to the print spool. I have a few reservations about this. The print spool will not be determined until the background job. The background job creates sales orders and the material group, in the sales order, determines the printer that the final report will go to. Also, if this is the way to do it, do I just do simple write statements in the background job?Hi,
Please try this ... perhaps it may help.
SUBMIT submitable TO SAP-SPOOL
SPOOL DESTINATION 'LT50'.
IMMEDIATELY 'X' "Add here
VIA JOB name NUMBER number
AND RETURN.
OR
SUBMIT submitable TO SAP-SPOOL
SPOOL DESTINATION 'LT50'.
IMMEDIATELY 'X' "Add here
WITHOUT SPOOL DYNPRO "Add here
VIA JOB name NUMBER number
AND RETURN.
Regards,
Ferry Lianto -
Hi.
We create sales orders via EDI. When certain sales orders are created, we execute user exists on the Sales Order save. During the User Exit, we submit/create (job_open_adk function, the submit command, and the job_close_adk function) a background job.
The background, is created and executed successfully, but we get 2
short dumps everytime.
The short dump is:
DYNPRO_SEND_IN_BACKGROUND
The description is:
Screen output without connection to user.
The short dump is for the user WF-BATCH.
I've used DEBUG and the shortdump occurs on the submit command.
submit zsd
to sap-spool
destination 'null'
immediately ''
keep in spool 'X'
without spool dynpro
and return
user l_user via job tbtcjob-jobname
number tbtcjob-jobcount
with p_vbeln = l_order
with p_ebeln = l_po
with p_uname = l_user.
Nothing should be displayed on the screen.
I used 'without spool dynpro' to prevent the 'Print Screen List' window
from appearing.
I've put this code into a TEST program. I ran the test program
myself. (under my ID) The program run perfectly. No
shortdump.
Similar code is used in other programs and it works perfectly - no shortdumps.
The short dump occurs when we use ALE/EDI to create a sales order.
The short dump has the ID WF-BATCH on it.
I'm guessing the problem is with the WF-BATCH ID. Are printer setting
missing on a Work Flow ID?
Any ideas why the 'without spool dynpro' parameter doesn't work for the
WF-BATCH ID?
I've tried searching OSS and I looked at the on-line help/documentation
on Submit. I saw a recommentation to use the
fuction 'GET_PRINT_PARAMETERS' to set all of the print parameters. I
tried this, but still got the short dumps.
Any suggestion on how I can run the Submit command and not get a short dump?
thanks,
MichelleHi,
Try this notes:
0100915 RSBDCREO: System hangs or parameters not effective
0377038 HR-CA-ALE: DYNPRO_SEND_IN_BACKGROUND for HR doc. d
0105165 Dump "DYNPRO_SEND_IN_BACKGROUND" in prog.SAPMSSY0
0169303 Warning messages displayed for settlement mass pro
0428489 VL10: Dump 'DYNPRO_SEND_IN_BACKGROUND' with backgr
[[http://forums.sdn.sap.com/thread.jspa?threadID=14875|http://forums.sdn.sap.com/thread.jspa?threadID=14875]]
Regards
HM
Maybe you are looking for
-
Hi I have a report with 4 Repeating Frames.It works perfectly fine until it gets same Client names which is one of the Repeating frames. Means the name of the Client is not printed and its relevent details are printed. Following is the query used Sel
-
Pcmanfm alt+arrow shortcuts for "back" and "cd ../" not working
A recent update must have stopped this from working for me. In previous versions, alt+up arrow caused me to go up a directory level, and alt+left arrow caused me to go back to whatever directory I had previously been in. Now alt only causes lines to
-
Hello, We have some ASA 5515-Xs running 8.6(1) code. We have syslogging setup (config below) and it's logging a slew of data just fine at a pace of 3-5 messages/sec, however there are some syslog IDs that never get sent. I have verified with tcpdum
-
Every time when i try to sign in my apple id in app store is show me unkown error
every time when i try to sign in my apple id in app store is show me unkown error
-
Ability view colorspace of file in LR
Hello! Now that we have the ability to import, edit and view files in the LR catalog that are NOT in an RGB colorspace (THANKS!), it would be a nice feature to be able to tell what files in the catalog are in CMYK or another color space. Bridge alr