Documentos de Académico
Documentos de Profesional
Documentos de Cultura
software de terceros
13619,559
Anteriormente teníamos que escribir un programa .NET usando SAP.NET Connector (usando VB.NET)
y luego desde el lado de SAP tuvimos que crear RFC para que los datos del puerto COMM se utilicen en
SAP.
Ahora no es necesario utilizar el software de terceros (VB.NET, C #, etc.) Con los siguientes pasos
podemos obtener directamente los datos de peso en el puerto COMM a SAP:
Paso 3: Implemente este control en Transaction SOLE en SAP (Cree una entrada
MSCOMMLIB.MSCOMM.1 e ingrese el CLSID. {648A5600-2C6E-101B-82B6-000000000014}
Paso 4: Active este MSCOMM32.OCX con la clave de licencia en la PC cliente donde está conectado el
puerto serie de la báscula.
Reinicie el sistema y ejecute FM. si los datos llegan al puerto serie, obtendrá el resultado.
Código FM:
FUNCTION z_serial_comport.
"---------------------------------------------------------------------
----------"
""""Local Interface:
"" IMPORTING
"" REFERENCE(MODE) TYPE I DEFAULT 0
"" REFERENCE(COMMPORT) TYPE I DEFAULT 1
"" REFERENCE(SETTINGS) TYPE C DEFAULT '2400,N,8,1'
"" REFERENCE(OUTPUT) TYPE C OPTIONAL
"" EXPORTING
"" REFERENCE(INPUT) TYPE C
"" EXCEPTIONS
"" NO_CREATE_OBJECT
"---------------------------------------------------------------------
----------"
TYPE-POOLS: sabc.
INCLUDE ole2incl.
PERFORM init.
PERFORM open_port USING commport settings.
IF mode = 0.
PERFORM read_port
CHANGING input.
ENDIF.
IF mode = 1.
PERFORM write_port
USING output
CHANGING input.
ENDIF.
PERFORM final.
ENDFUNCTION.
DATA: o_obj TYPE ole2_object.
"---------------------------------------------------------------------
----------"
FORM init.
DATA:
wa_repid LIKE sy-repid.
wa_repid = sy-repid.
CALL FUNCTION 'AUTHORITY_CHECK_OLE'
EXPORTING
program = wa_repid
activity = sabc_act_call
application = 'MSCOMMLIB.MSCOMM.1'
EXCEPTIONS
no_authority = 1
activity_unknown = 2
OTHERS = 3.
IF sy-subrc <> 0.
MESSAGE ID sy-msgid TYPE sy-msgty NUMBER sy-msgno
WITH sy-msgv1 sy-msgv2 sy-msgv3 sy-msgv4.
ENDIF.
CREATE OBJECT o_obj 'MSCOMMLib.MSComm.1'.
IF sy-subrc <> 0.
RAISE no_create_object.
ENDIF.
ENDFORM. " Init
"---------------------------------------------------------------------
----------"
FORM open_port USING commport settings.
SET PROPERTY OF o_obj 'CommPort' = commport.
SET PROPERTY OF o_obj 'Settings' = settings.
SET PROPERTY OF o_obj 'InputLen' = 0.
SET PROPERTY OF o_obj 'PortOpen' = 1.
ENDFORM. "open_port
"---------------------------------------------------------------------
----------"
FORM read_port
CHANGING input.
DATA:
wa_buffer TYPE i.
DO 10 TIMES.
GET PROPERTY OF o_obj 'InBufferCount' = wa_buffer.
IF wa_buffer > 0.
GET PROPERTY OF o_obj 'Input' = input.
EXIT.
ENDIF.
ENDDO.
ENDFORM. " read_port
"---------------------------------------------------------------------
----------"
FORM write_port
USING output
CHANGING input.
DATA:
wa_buffer TYPE i.
SET PROPERTY OF o_obj 'Output' = output.
DO 10 TIMES.
GET PROPERTY OF o_obj 'InBufferCount' = wa_buffer.
IF wa_buffer > 0.
GET PROPERTY OF o_obj 'Input' = input.
EXIT.
ENDIF.
ENDDO.
ENDFORM. "write_port
"---------------------------------------------------------------------
----------"
FORM final.
SET PROPERTY OF o_obj 'PortOpen' = 0.
FREE OBJECT o_obj.
ENDFORM. " final
http://forums.sdn.sap.com/thread.jspa?threadID=1766170
http://www.sapfans.com/forums/viewtopic.php?f=13&t=145782&start=0&st=0&sk=t&sd=a
Saludos,
Firoz.
SeguirIgual queRSS Feed
Buenas tardes Maria saludarte,
Te envió adjunto la información que me pasaron mas el texto que sigue que alguien lo
paso también.
para entrar en la sole podemos usar esta vista V_TOLE por la sm30