MUNDOSAP

Regresar   MUNDOSAP > DESARROLLO > Programación ABAP IV
Nombre de Usuario
Contraseña
Home Descargas Registrar FAQ Miembros Calendario Buscar Temas de Hoy Marcar Foros Como Leídos




 
Respuesta
 
Herramientas Buscar en Tema Desplegado
  #1  
Viejo 11/10/06, 18:31:41
Avatar de DCErick
DCErick DCErick is offline
Moderator
 
Fecha de Ingreso: mar 2006
Localización: Monterrey
Mensajes: 1,090
Subir Imagen

Trato de hacer un Call Transaction de la SE78 para subir unas imagenes a SAP. Hago la grabacion en la SM35 pero cuando trato de correr de nuevo la grabacion no me hace lo que yo hice cuando la grabe y no puedo subir imagenes....

Será que por la SE78 no se puede subir imagenes mediante calltransaction??

Alguien sabe por donde podria subirlas o si hay una bapi o funcion para hacerlo???

Úlima edición por DCErick fecha: 11/10/06 a las 22:54:06.
Responder Con Cita
  #2  
Viejo 13/10/06, 16:14:13
Avatar de DCErick
DCErick DCErick is offline
Moderator
 
Fecha de Ingreso: mar 2006
Localización: Monterrey
Mensajes: 1,090
Holas.

Bueno como no me quedó de otra copie unos forms del programa LSTXBITMAPSF05 el cual tiene dos forms que en mi caso son los que necesité graphic_import_bds la cual manda llamar a import_bitmap_bds

Y mande llamar el form como vá


En este form hay un select a la tabla stxbitmaps para ver si la imagen ya existe posterior a eso hace una pregunta de si quieres modificar la imagen, en mi caso siempre se quiere subir pues es una carga masiva y opte por comentar el siguiente codigo:


Y por ultimo modifique le agrege a la parte donde manda mensajes de error lo siguiente.

De : MESSAGE e285
Quedaron en : MESSAGE e285(td)

P.D. Viendo el codigo de estos forms podemos notar que no podremos correrlo en proceso de fondo (JOB).... Pues SAP carga la imagen con el WS_UPLOAD el cual no corre en (JOB)

Espero que esto le ayude a alguien pues yo si que tarde algo en encontrarlo.

Y si alguien tiene alguna otra solucion no dude en postear.
__________________
-------------------
¿Dudas para descargar manuales? Ver este tema ->
Responder Con Cita
  #3  
Viejo 07/03/12, 22:42:52
Sergio Leandro Sergio Leandro is offline
Junior Member
 
Fecha de Ingreso: nov 2006
Mensajes: 5
Thumbs up

Hola Erick

Pues me has ahorrado el trabajo gracias, y cuando te das una vuelta por Mazatlán?

Saludos desde Costa Rica.

Sergio Leandro
Responder Con Cita
  #4  
Viejo 08/03/12, 20:53:18
Avatar de DCErick
DCErick DCErick is offline
Moderator
 
Fecha de Ingreso: mar 2006
Localización: Monterrey
Mensajes: 1,090
jajaaj Saludos sergio,

Espero ir en semana santa....

Saludos desde regiolandia.
__________________
-------------------
¿Dudas para descargar manuales? Ver este tema ->
Responder Con Cita
  #5  
Viejo 12/08/12, 22:41:42
cassares cassares is offline
Junior Member
 
Fecha de Ingreso: oct 2007
Mensajes: 4
Thumbs up subir imágenes a color SE78 ABAP

Excelente bueno que sea solo copiar y pegar en definiciones globales:


* Globals and globals for dynpro fields
data: g_objecttype(20) type c,
g_new_resolution like stxbitmaps-resolution,
g_stxbitmaps type stxbitmaps,
g_stxh type stxh,
g_techinfo type rsscg,
t_size(40),
bds_description like bapisignat-prop_value.

CONSTANTS:
c_true TYPE char1 VALUE 'X',
c_false TYPE char1 VALUE space.

TYPES: sbdst_logical_system LIKE bapibds01-log_system,
sbdst_classname LIKE bapibds01-classname,
sbdst_classtype LIKE bapibds01-classtype,
sbdst_client LIKE bapibds01-client,
sbdst_object_key LIKE bapibds01-objkey,
sbdst_doc_id LIKE bapibds01-doc_id,
sbdst_doc_ver_no LIKE bapibds01-doc_ver_no,
sbdst_doc_var_id LIKE bapibds01-doc_var_id,
sbdst_doc_var_tg LIKE bapibds01-doc_var_tg,
sbdst_new_var_tg LIKE bapibds01-doc_var_tg,
sbdst_url LIKE bapibds01-uri,
sbdst_url_lifetime LIKE bapibds01-uri_life,
sbdst_x LIKE bapibds01-x,
sbdst_binary_flag LIKE bapibds01-x,
sbdst_mimetype LIKE bapibds01-mimetype.


CONSTANTS:
c_stdtext LIKE thead-tdobject VALUE 'TEXT',
c_graphics LIKE thead-tdobject VALUE 'GRAPHICS',
c_bmon LIKE thead-tdid VALUE 'BMON',
c_bcol LIKE thead-tdid VALUE 'BCOL'.

CONSTANTS:
c_bds_classname TYPE sbdst_classname VALUE 'DEVC_STXD_BITMAP',
c_bds_classtype TYPE sbdst_classtype VALUE 'OT', " others
c_bds_mimetype TYPE bds_mimetp VALUE 'application/octet-stream',
c_bds_original TYPE sbdst_doc_var_tg VALUE 'OR'.


y la función:

FUNCTION ZSUBIR_IMAGEN .
*"----------------------------------------------------------------------
*"*"Interfase local
*" IMPORTING
*" REFERENCE(GI_FILENAME) TYPE RLGRAP-FILENAME DEFAULT
*" 'C:\mapa1.bmp'
*" REFERENCE(GI_NAME) TYPE STXBITMAPS-TDNAME DEFAULT 'MAPA37'
*" REFERENCE(GI_OBJECT) TYPE STXBITMAPS-TDOBJECT DEFAULT
*" 'GRAPHICS'
*" REFERENCE(GI_ID) TYPE STXBITMAPS-TDID DEFAULT 'BMAP'
*" REFERENCE(GI_BTYPE) TYPE STXBITMAPS-TDBTYPE DEFAULT 'BCOL'
*" REFERENCE(GI_TITLE) TYPE BAPISIGNAT-PROP_VALUE DEFAULT 'TITULO'
*" REFERENCE(GI_RESIDENT) TYPE STXBITMAPS-RESIDENT DEFAULT SPACE
*" REFERENCE(GI_AUTOHEIGHT) TYPE STXBITMAPS-AUTOHEIGHT DEFAULT 'X'
*" REFERENCE(GI_BMCOMP) TYPE STXBITMAPS-BMCOMP DEFAULT 'X'
*" CHANGING
*" REFERENCE(GI_RESOLUTION) TYPE STXBITMAPS-RESOLUTION DEFAULT
*" '000'
*"----------------------------------------------------------------------

TABLES: stxbitmaps.


FIELD-SYMBOLS <l>.

DATA: l_extension TYPE rlgrap-filename,
l_len TYPE i,
l_question(400),
l_answer(1),
l_docid TYPE stxbitmaps-docid.

* SELECT SINGLE * FROM stxbitmaps WHERE tdobject = gi_object
* AND tdname = gi_name
* AND tdid = gi_id
* AND tdbtype = gi_btype.
* IF sy-subrc = 0.
* l_docid = stxbitmaps-docid.
* l_question = text-q01.
* l_len = STRLEN( gi_name ).
* ASSIGN gi_name(l_len) TO <l>.
* REPLACE '&1' WITH <l> INTO l_question.
* CONCATENATE l_question text-q02 INTO l_question.
* CALL FUNCTION 'POPUP_TO_CONFIRM'
* EXPORTING
* titlebar = text-t01
* text_question = l_question
* text_button_1 = 'Ja'(006)
* icon_button_1 = ' '
* text_button_2 = 'Nein'(007)
* icon_button_2 = ' '
* default_button = '1'
* IMPORTING
* answer = l_answer.
* IF l_answer = 'A'.
* SET SCREEN sy-dynnr.
* LEAVE SCREEN.
* ELSEIF l_answer = '2'.
* SET SCREEN 0.
* LEAVE SCREEN.
* ENDIF.
* ELSE.
* CLEAR l_docid.
* ENDIF.

PERFORM get_extension USING gi_filename
CHANGING l_extension.
TRANSLATE l_extension TO UPPER CASE. "#EC TRANSLANG
CASE l_extension.
WHEN 'TIF' OR 'TIFF'
OR 'BMP'.
PERFORM import_bitmap_bds USING gi_filename
gi_name
gi_object
gi_id
gi_btype
l_extension
gi_title
gi_resident
gi_autoheight
gi_bmcomp
CHANGING l_docid
gi_resolution.
WHEN OTHERS.
* message e857 with gi_filename.

ENDCASE.




ENDFUNCTION.

*&---------------------------------------------------------------------*
*& Form import_bitmap_bds
*&---------------------------------------------------------------------*
* text
*----------------------------------------------------------------------*
* -->P_FILENAME text
* -->P_NAME text
* -->P_OBJECT text
* -->P_ID text
* -->P_BTYPE text
* -->P_FORMAT text
* -->P_TITLE text
* -->P_RESIDENT text
* -->P_AUTOHEIGHT text
* -->P_BMCOMP text
* -->P_DOCID text
* -->P_RESOLUTION text
*----------------------------------------------------------------------*
FORM import_bitmap_bds
USING p_filename TYPE rlgrap-filename
p_name TYPE stxbitmaps-tdname
p_object TYPE stxbitmaps-tdobject
p_id TYPE stxbitmaps-tdid
p_btype TYPE stxbitmaps-tdbtype
p_format TYPE c
p_title LIKE bapisignat-prop_value
p_resident TYPE stxbitmaps-resident
p_autoheight TYPE stxbitmaps-autoheight
p_bmcomp TYPE stxbitmaps-bmcomp
CHANGING p_docid TYPE stxbitmaps-docid
p_resolution TYPE stxbitmaps-resolution.



DATA: l_object_key TYPE sbdst_object_key.
DATA: l_tab TYPE ddobjname.
DATA: BEGIN OF l_bitmap OCCURS 0,
l(64) TYPE x,
END OF l_bitmap.
DATA: l_filename TYPE string,
l_bytecount TYPE i,
l_bds_bytecount TYPE i.
DATA: l_color(1) TYPE c,
l_width_tw TYPE stxbitmaps-widthtw,
l_height_tw TYPE stxbitmaps-heighttw,
l_width_pix TYPE stxbitmaps-widthpix,
l_height_pix TYPE stxbitmaps-heightpix.
DATA: l_bds_object TYPE REF TO cl_bds_document_set,
l_bds_content TYPE sbdst_content,
l_bds_components TYPE sbdst_components,
wa_bds_components TYPE LINE OF sbdst_components,
l_bds_signature TYPE sbdst_signature,
wa_bds_signature TYPE LINE OF sbdst_signature,
l_bds_properties TYPE sbdst_properties,
wa_bds_properties TYPE LINE OF sbdst_properties.
DATA wa_stxbitmaps TYPE stxbitmaps.

* Enqueue
PERFORM enqueue_graphic USING p_object
p_name
p_id
p_btype.

* File transfer
l_filename = p_filename.
CALL FUNCTION 'GUI_UPLOAD'
EXPORTING
filename = l_filename
filetype = 'BIN'
IMPORTING
filelength = l_bytecount
TABLES
data_tab = l_bitmap
EXCEPTIONS
file_open_error = 2
file_read_error = 3
no_batch = 1
gui_refuse_filetransfer = 4
invalid_type = 5
no_authority = 6
unknown_error = 7
bad_data_format = 8
header_not_allowed = 9
separator_not_allowed = 10
header_too_long = 11
unknown_dp_error = 12
access_denied = 13
dp_out_of_memory = 14
disk_full = 15
dp_timeout = 16
OTHERS = 17.
CASE sy-subrc.
WHEN 0.
WHEN 2.
PERFORM dequeue_graphic USING p_object
p_name
p_id
p_btype.
* message e811 with p_filename.
WHEN 3.
PERFORM dequeue_graphic USING p_object
p_name
p_id
p_btype.
* message e812 with p_filename.
WHEN OTHERS.
PERFORM dequeue_graphic USING p_object
p_name
p_id
p_btype.
* message e813 with p_filename.
ENDCASE.

IF p_btype = c_bmon.
l_color = c_false.
ELSE.
l_color = c_true.
ENDIF.

* Bitmap conversion
CALL FUNCTION 'SAPSCRIPT_CONVERT_BITMAP_BDS'
EXPORTING
color = l_color
format = p_format
resident = p_resident
bitmap_bytecount = l_bytecount
compress_bitmap = p_bmcomp
IMPORTING
width_tw = l_width_tw
height_tw = l_height_tw
width_pix = l_width_pix
height_pix = l_height_pix
dpi = p_resolution
bds_bytecount = l_bds_bytecount
TABLES
bitmap_file = l_bitmap
bitmap_file_bds = l_bds_content
EXCEPTIONS
format_not_supported = 1
no_bmp_file = 2
bmperr_invalid_format = 3
bmperr_no_colortable = 4
bmperr_unsup_compression = 5
bmperr_corrupt_rle_data = 6
OTHERS = 7.
IF sy-subrc <> 0.
PERFORM dequeue_graphic USING p_object
p_name
p_id
p_btype.
MESSAGE ID sy-msgid TYPE sy-msgty NUMBER sy-msgno
WITH sy-msgv1 sy-msgv2 sy-msgv3 sy-msgv4
RAISING conversion_failed.
ENDIF.

* Save bitmap in BDS
CREATE OBJECT l_bds_object.

wa_bds_components-doc_count = '1'.
wa_bds_components-comp_count = '1'.
wa_bds_components-mimetype = c_bds_mimetype.
wa_bds_components-comp_size = l_bds_bytecount.
APPEND wa_bds_components TO l_bds_components.

IF p_docid IS INITIAL. " graphic is new

wa_bds_signature-doc_count = '1'.
APPEND wa_bds_signature TO l_bds_signature.

CALL METHOD l_bds_object->create_with_table
EXPORTING
classname = c_bds_classname
classtype = c_bds_classtype
components = l_bds_components
content = l_bds_content
CHANGING
signature = l_bds_signature
object_key = l_object_key
EXCEPTIONS
OTHERS = 1.
IF sy-subrc <> 0.
PERFORM dequeue_graphic USING p_object
p_name
p_id
p_btype.
* message e285 with p_name 'BDS'.
ENDIF.
READ TABLE l_bds_signature INDEX 1 INTO wa_bds_signature
TRANSPORTING doc_id.
IF sy-subrc = 0.
p_docid = wa_bds_signature-doc_id.
ELSE.
PERFORM dequeue_graphic USING p_object
p_name
p_id
p_btype.
* message e285 with p_name 'BDS'.
ENDIF.

ELSE. " graphic already exists
********* read object_key for faster access *****
CLEAR l_object_key.
SELECT SINGLE * FROM stxbitmaps INTO wa_stxbitmaps
WHERE tdobject = p_object
AND tdid = p_id
AND tdname = p_name
AND tdbtype = p_btype.
SELECT SINGLE tabname FROM bds_locl INTO l_tab
WHERE classname = c_bds_classname
AND classtype = c_bds_classtype.
IF sy-subrc = 0.
SELECT SINGLE object_key FROM (l_tab) INTO l_object_key
WHERE loio_id = wa_stxbitmaps-docid+10(32)
AND classname = c_bds_classname
AND classtype = c_bds_classtype.
ENDIF.
******** read object_key end ********************

CALL METHOD l_bds_object->update_with_table
EXPORTING
classname = c_bds_classname
classtype = c_bds_classtype
object_key = l_object_key
doc_id = p_docid
doc_ver_no = '1'
doc_var_id = '1'
CHANGING
components = l_bds_components
content = l_bds_content
EXCEPTIONS
nothing_found = 1
OTHERS = 2.
IF sy-subrc = 1. " inconsistency STXBITMAPS - BDS; repeat check in
wa_bds_signature-doc_count = '1'.
APPEND wa_bds_signature TO l_bds_signature.

CALL METHOD l_bds_object->create_with_table
EXPORTING
classname = c_bds_classname
classtype = c_bds_classtype
components = l_bds_components
content = l_bds_content
CHANGING
signature = l_bds_signature
object_key = l_object_key
EXCEPTIONS
OTHERS = 1.
IF sy-subrc <> 0.
PERFORM dequeue_graphic USING p_object
p_name
p_id
p_btype.
* message e285 with p_name 'BDS'.
ENDIF.
READ TABLE l_bds_signature INDEX 1 INTO wa_bds_signature
TRANSPORTING doc_id.
IF sy-subrc = 0.
p_docid = wa_bds_signature-doc_id.
ELSE.
PERFORM dequeue_graphic USING p_object
p_name
p_id
p_btype.
* message e285 with p_name 'BDS'.
ENDIF.

ELSEIF sy-subrc = 2.
PERFORM dequeue_graphic USING p_object
p_name
p_id
p_btype.
* message e285 with p_name 'BDS'.
ENDIF.

ENDIF.

* Save bitmap header in STXBITPMAPS
wa_stxbitmaps-tdname = p_name.
wa_stxbitmaps-tdobject = p_object.
wa_stxbitmaps-tdid = p_id.
wa_stxbitmaps-tdbtype = p_btype.
wa_stxbitmaps-docid = p_docid.
wa_stxbitmaps-widthpix = l_width_pix.
wa_stxbitmaps-heightpix = l_height_pix.
wa_stxbitmaps-widthtw = l_width_tw.
wa_stxbitmaps-heighttw = l_height_tw.
wa_stxbitmaps-resolution = p_resolution.
wa_stxbitmaps-resident = p_resident.
wa_stxbitmaps-autoheight = p_autoheight.
wa_stxbitmaps-bmcomp = p_bmcomp.
INSERT INTO stxbitmaps VALUES wa_stxbitmaps.
IF sy-subrc <> 0.
UPDATE stxbitmaps FROM wa_stxbitmaps.
IF sy-subrc <> 0.
* message e285 with p_name 'STXBITMAPS'.
ENDIF.
ENDIF.

* Set description in BDS attributes
wa_bds_properties-prop_name = 'DESCRIPTION'.
wa_bds_properties-prop_value = p_title.
APPEND wa_bds_properties TO l_bds_properties.

CALL METHOD l_bds_object->change_properties
EXPORTING
classname = c_bds_classname
classtype = c_bds_classtype
object_key = l_object_key
doc_id = p_docid
doc_ver_no = '1'
doc_var_id = '1'
CHANGING
properties = l_bds_properties
EXCEPTIONS
OTHERS = 1.

PERFORM dequeue_graphic USING p_object
p_name
p_id
p_btype.

ENDFORM. "import_bitmap_bds

*&---------------------------------------------------------------------*
*& Form dequeue_graphic
*&---------------------------------------------------------------------*
* text
*----------------------------------------------------------------------*
* -->P_OBJECT text
* -->P_NAME text
* -->P_ID text
* -->P_BTYPE text
*----------------------------------------------------------------------*
FORM dequeue_graphic USING p_object
p_name
p_id
p_btype.

CALL FUNCTION 'DEQUEUE_ESSGRABDS'
EXPORTING
* MODE_STXBITMAPS = 'E'
* X_TDOBJECT = ' '
* X_TDNAME = ' '
* X_TDID = ' '
* X_TDBTYPE = ' '
* _SCOPE = '3'
* _SYNCHRON = ' '
* _COLLECT = ' '
tdobject = p_object
tdname = p_name
tdid = p_id
tdbtype = p_btype.

ENDFORM. "dequeue_graphic


*&---------------------------------------------------------------------*
*& Form enqueue_graphic
*&---------------------------------------------------------------------*
* text
*----------------------------------------------------------------------*
* -->P_OBJECT text
* -->P_NAME text
* -->P_ID text
* -->P_BTYPE text
*----------------------------------------------------------------------*
FORM enqueue_graphic USING p_object
p_name
p_id
p_btype.

CALL FUNCTION 'ENQUEUE_ESSGRABDS'
EXPORTING
* MODE_STXBITMAPS = 'E'
tdobject = p_object
tdname = p_name
tdid = p_id
tdbtype = p_btype
* X_TDOBJECT = ' '
* X_TDNAME = ' '
* X_TDID = ' '
* X_TDBTYPE = ' '
* _SCOPE = '2'
* _WAIT = ' '
* _COLLECT = ' '
EXCEPTIONS
foreign_lock = 1
OTHERS = 2.

IF sy-subrc <> 0.
MESSAGE ID sy-msgid TYPE sy-msgty NUMBER sy-msgno
WITH sy-msgv1 sy-msgv2 sy-msgv3 sy-msgv4
RAISING enqueue_failed.
ENDIF.

ENDFORM. "enqueue_graphic

*&---------------------------------------------------------------------*
*& Form GET_EXTENSION
*&---------------------------------------------------------------------*
* text
*----------------------------------------------------------------------*
* -->P_FILENAME text
* -->P_EXTENSION text
*----------------------------------------------------------------------*
FORM get_extension USING p_filename TYPE rlgrap-filename
CHANGING p_extension TYPE rlgrap-filename.

FIELD-SYMBOLS: <help1>, <help2>.

DATA: var1 TYPE i,
var2 TYPE i,
l_filename TYPE rlgrap-filename.

l_filename = p_filename.
var1 = STRLEN( l_filename ).
IF var1 = 0.
CLEAR p_extension.
EXIT.
ENDIF.

ASSIGN l_filename(var1) TO <help2>.
SUBTRACT 1 FROM var1.
ASSIGN <help2>+var1(1) TO <help1>.
DO.
IF sy-index > var1.
SHIFT <help2> RIGHT CIRCULAR.
var2 = sy-index.
EXIT.
ENDIF.
IF <help1> = '.'.
var2 = sy-index - 1.
EXIT.
ENDIF.
SHIFT <help2> RIGHT CIRCULAR.
ENDDO.
WRITE <help2> TO p_extension(var2).

ENDFORM. " GET_EXTENSION
Responder Con Cita
  #6  
Viejo 10/06/20, 08:13:27
sacul907 sacul907 is offline
Junior Member
 
Fecha de Ingreso: ene 2008
Mensajes: 10
Me ha venido genial!!!!

Muchisimas gracias por el pedazo de aporte.

Saludos
Responder Con Cita
Respuesta


Herramientas Buscar en Tema
Buscar en Tema:

Búsqueda Avanzada
Desplegado

Reglas de Mensajes
no puedes crear nuevos temas
no puedes responder temas
no puedes adjuntar archivos
no puedes editar tus mensajes

El código vB está On
Las caritas están On
Código [IMG] está On
Código HTML está Off
Saltar a Foro


Husos Horarios son GMT. La hora en este momento es 22:21:04.


www.mundosap.com 2006 - Spain
software crm, crm on demand, software call center, crm act, crm solutions, crm gratis, crm web