on 05-03-2006 3:15 PM
Hi everyone:
I developed one program to transfer a internal table to a file in the server.
If I make a job to run this program, the file is not created.
If I run the program like a transaction the file is created and I see the file in AL11 transaction but I don't find the file in the path in Unix (SO).
Any idea about this?
Thanks
Eduardo Campos
Eduardo,
if you are using some fm like ws_download, change to the "open/close dataset" command.
You must be a registered user to add a comment. If you've already registered, sign in. Otherwise, register and sign in.
I am assuming that you have object "S_dataset" ( AL11 ) authorizations right ? Youre running background job with your user name?
Like on our site we have different user to kickoff the batch jobs .
Other wise its a good idea to check sy-subrc and if it fails then through message !!
Hope thisll give you idea!!
<b>P.S award the points.</b>
Good luck
Thanks
Saquib Khan
Hi,
Show your Complete code. and it is must to check the sy-subrc after the Open dataset and close dataset.
and are you transfering single record or multiple records. you are not using any loop/endloop for your transfer.
OPEN DATASET p_arch FOR OUTPUT MESSAGE v_msg
IN TEXT MODE ENCODING DEFAULT
if sy-subrc = 0.
TRANSFER i_interfase TO p_arch.
endif.
CLOSE DATASET: p_arch.
can you show your code.
Regards
vijay
Hi Vijay:
Yes I have a loop:
FORM f_generar_salida .
DATA: lv_saldo TYPE betrw_kk,
lv_ultimo_periodo(8),
lv_cuantos_periodos(4).
*--- DEVK907798 VMJO 22/DIC/2005 (INICIO)
TRANSLATE p_arch TO LOWER CASE.
*--- DEVK907798 VMJO 22/DIC/2005 (FIN)
OPEN DATASET p_arch FOR OUTPUT MESSAGE v_msg
IN TEXT MODE ENCODING DEFAULT.
IF sy-subrc NE 0.
*--- DEVK907786 VMJO 20/DIC/2005 (INICIO)
**--- TEXT-009 Error al abrir archivo de interfase
MESSAGE e000 WITH text-009.
*--- TEXT-009 Error al abrir archivo de interfase
MESSAGE e000 WITH v_msg.
*--- DEVK907786 VMJO 20/DIC/2005 (FIN)
ENDIF.
CLEAR: i_salida.
REFRESH: i_salida.
CLEAR: i_interfase.
REFRESH: i_interfase.
v_cont = 1.
v_lin = 5000.
DESCRIBE TABLE i_hrp1000_st LINES v_lines.
v_lines = v_lines / 5000.
v_lines = v_lines + 1.
v_porc = 100 / v_lines.
v_total = v_porc.
LOOP AT i_hrp1000_st.
v_tabix = sy-tabix.
CLEAR i_salida.
IF v_tabix = 1.
*--- text-010 Procesando Estudiantes
CALL FUNCTION 'SAPGUI_PROGRESS_INDICATOR'
EXPORTING
percentage = v_total
text = text-010.
ENDIF.
IF v_tabix > v_lin.
v_cont = v_cont + 1.
v_lin = 5000 * v_cont.
LOOP AT i_vacia.
ENDLOOP.
v_total = v_porc * v_cont.
*--- text-010 Procesando Estudiantes
CALL FUNCTION 'SAPGUI_PROGRESS_INDICATOR'
EXPORTING
percentage = v_total
text = text-010.
ENDIF.
*--- Id Estudiante
i_salida-id_st = i_hrp1000_st-objid.
*--- Lee Nombre del Estudiante
READ TABLE i_hrp1702
WITH KEY objid = i_hrp1000_st-objid.
IF sy-subrc EQ 0.
i_salida-nombre_st = i_hrp1702-vorna.
i_salida-apater_st = i_hrp1702-midnm.
i_salida-amater_st = i_hrp1702-rufnm.
ELSE.
i_salida-nombre_st = c_null.
i_salida-apater_st = c_null.
i_salida-amater_st = c_null.
ENDIF.
*--- Lee Nivel de Estudio del Estudiante
READ TABLE i_hrp1705
WITH KEY objid = i_hrp1000_st-objid.
IF sy-subrc EQ 0.
i_salida-nivest_st = i_hrp1705-stgrp.
ELSE.
i_salida-nivest_st = c_null.
ENDIF.
*--- Busca Nombre de Carrera del Estudiante
*--- Lee Objeto de Estudio del Estudiante
READ TABLE i_hrp1001_cs
WITH KEY objid = i_hrp1000_st-objid.
IF sy-subrc EQ 0.
*--- Lee Carrera relacionada al Objeto de Estudio del Estudiante
READ TABLE i_hrp1001_sc
WITH KEY objid = i_hrp1001_cs-sobid_8.
IF sy-subrc EQ 0.
*--- Lee Nombre de la Carrera del Estudiante
READ TABLE i_hrp1000_sc
WITH KEY objid = i_hrp1001_sc-sobid_8.
IF sy-subrc EQ 0.
*--- Nombre de la Carrera
i_salida-nombre_sc = i_hrp1000_sc-mc_short.
ELSE.
i_salida-nombre_sc = c_null.
ENDIF.
ELSE.
i_salida-nombre_sc = c_null.
ENDIF.
ELSE.
i_salida-nombre_sc = c_null.
ENDIF.
*--- Escuela Porcedencia
i_salida-esc_proce = c_null.
v_objid_st = i_hrp1000_st-objid.
*--- Campus del Estudiante
PERFORM f_obtener_campus_st.
IF v_switch = 0.
i_salida-campus_st = v_st_campus.
ELSE.
i_salida-campus_st = c_null.
ENDIF.
*--- Busca Examen de Admisión
*--- Lee Numero de Dato Adicional del Estudiante
READ TABLE i_hrp1001_adm
WITH KEY objid = i_hrp1000_st-objid.
IF sy-subrc EQ 0.
*--- Lee Código de Admisión del Estudiante
READ TABLE i_hrpad530
WITH KEY adatanr = i_hrp1001_adm-adatanr.
IF sy-subrc EQ 0.
*--- Código de Admisión
IF NOT i_hrpad530-adm_code IS INITIAL.
i_salida-examen_adm = i_hrpad530-adm_code.
ELSE.
i_salida-examen_adm = c_null.
ENDIF.
ELSE.
i_salida-examen_adm = c_null.
ENDIF.
ELSE.
i_salida-examen_adm = c_null.
ENDIF.
*--- Matricula
i_salida-matricula = i_hrp1000_st-mc_short.
Inicia modificación 30/Mar/06 ECV DEVK908155
Saldo del estudiante
CLEAR lv_saldo.
PERFORM f_saldo USING i_hrp1000_st-mc_short
CHANGING lv_saldo.
i_salida-saldo = lv_saldo.
Ultimo periodo inscrito y cantidad de periodos en los que ha estado
inscrito.
PERFORM f_periodos USING i_hrp1000_st-objid
CHANGING lv_ultimo_periodo
lv_cuantos_periodos.
i_salida-periodo = lv_ultimo_periodo.
i_salida-contador = lv_cuantos_periodos.
Termina modificación 30/Mar/06 ECV DEVK908155
APPEND i_salida.
PERFORM f_genera_interfase.
ENDLOOP.
CLOSE DATASET: p_arch.
ENDFORM.
FORM f_genera_interfase .
CLEAR i_interfase.
CONCATENATE i_interfase-linea i_salida-id_st c_p
INTO i_interfase-linea.
CONCATENATE i_interfase-linea i_salida-nombre_st c_p
INTO i_interfase-linea.
CONCATENATE i_interfase-linea i_salida-apater_st c_p
INTO i_interfase-linea.
CONCATENATE i_interfase-linea i_salida-amater_st c_p
INTO i_interfase-linea.
CONCATENATE i_interfase-linea i_salida-nivest_st c_p
INTO i_interfase-linea.
CONCATENATE i_interfase-linea i_salida-nombre_sc c_p
INTO i_interfase-linea.
CONCATENATE i_interfase-linea i_salida-esc_proce c_p
INTO i_interfase-linea.
CONCATENATE i_interfase-linea i_salida-campus_st c_p
INTO i_interfase-linea.
CONCATENATE i_interfase-linea i_salida-matricula c_p
INTO i_interfase-linea.
CONCATENATE i_interfase-linea i_salida-examen_adm c_p
INTO i_interfase-linea.
Inicia modificación 30/Mar/06 ECV DEVK908155
CONCATENATE i_interfase-linea i_salida-saldo c_p
INTO i_interfase-linea.
CONCATENATE i_interfase-linea i_salida-periodo c_p
INTO i_interfase-linea.
CONCATENATE i_interfase-linea i_salida-contador c_p
INTO i_interfase-linea.
Termina modificación 30/Mar/06 ECV DEVK908155
APPEND i_interfase.
TRANSFER i_interfase TO p_arch.
ENDFORM. " f_genera_interfase
Yes its authorizations object , which has different read, write value set in your profile . Well if you are able to save it in foreground, then its not the problem .
Why dont you post your code . We can take a look.
Have you check sy-subrc ?
Hope thisll give you idea!!
<b>P.S award the points.</b>
Good luck
Thanks
Saquib Khan
Hi Campos,
are you calling this perform inside a loop. if so it is really cause you a lot of problem.
since every loop it will open the file, and then it will write the content.
instead you can try like this..
open dataset ..
if sy-subrc = 0.
loop at..
perform .... "with out open dataset
endloop.
close dataset ..
this will open the dataset only once.
Regards
vijay
User | Count |
---|---|
97 | |
10 | |
9 | |
6 | |
3 | |
3 | |
3 | |
3 | |
3 | |
3 |
You must be a registered user to add a comment. If you've already registered, sign in. Otherwise, register and sign in.