RMI/Firewall Problem. New approach.
Hi,
Please, have a look at our new Socket Factory that provides much
faster tunneling through firewalls and also allows
“callback”.
http://ca.geocities.com/rmi_doves/index.html
Regards,
Hi Dan,
I have had a lot of success using proxies to work around firewalled clients. I host a free software project at java.net dedicated to spontaneously linking Virtual Machines using RMI.
https://cajo.dev.java.net
It uses two classes, ClientProxy & ItemProxy, to implement the protocol.
More detailed information about this can be found here.
Best wishes,
John
Similar Messages
-
We are having problems sending RMI calls across the network when going through a VPN connection.
I suspect that the VPNs have embedded firewalls that are blocking the RMI calls.
(Note that If these same calls go through the local network instead of the VPN, or if run with client on server on the same machine then there are no problems at all)
When an RMI call is attempted, the following exception is thrown:
public class NoRouteToHostException
extends SocketException
Exception description: Signals that an error occurred while attempting to connect a socket to a remote address and port.
Typically, the remote host cannot be reached because of an intervening firewall, or if an intermediate router is down.
The VM making the RMI call is a deployed server running on weblogic on a HP Unix server.
JVM version 1.5_016 windows
The VM receiving the call is a thick client code running on a windows PC.
JVM version 1.5_014 unix
We are using the spring RMI libraries to provide the RMI functionality.
I also suspect the blocking is happening at the PC end and not the server,
because whether the call is blocked or not depends on the PC rather than the server environment.
I have found a couple of sources on the web below which I am going through, however it may take a while to try and test things and we need to fix this problem asap, so if anyone has experience or expertise in this area and can advise it would
be really, really helpful.
http://java.sun.com/j2se/1.4.2/docs/guide/rmi/faq.html
http://java.sun.com/developer/onlineTraining/rmi/RMI.html
Many thanks for your help
PaulSee item A.1 in the Javadoc/Guide to Features/Remote Method Invocation/RMI FAQ. You need to find an IP address for the server that you can ping from the client. Then you need to set java.rmi.server.hostname to that address at the server before it exports any remote objects.
If you can't find such an IP address you are hosed. But that'w not an RMI issue, it's a network connectivity issue. -
Anyone using Multi plexing to solve RMI firewall problem?
Hello,
I read in the RMI protocol spec about Rmi's multiplexing protocol (http://java.sun.com/j2se/1.3/docs/guide/rmi/spec/rmi-protocol7.html)
which states:
The purpose of multiplexing is to provide a model where two endpoints can each open multiple full duplex connections to the other endpoint in an environment where only one of the endpoints is able to open such a bidirectional connection using some other facility.
However i still have not found how to do this using the RMI api provided within Java. I have read numerous posts saying that you CANNOT using the multiplexing protocol, I have read posts which say that you should not allow the client to create a server socket which will force the client to use the multiplexing protocol over an existing socket.
My main concern is the product i am developing will be used across firewalls, where we are able to create connections from our server to our client, but the firewall disallows the opposite, and our IT department WILL NOT open access on known ports. Thusly our only option is to use the multiplexing protocol if it does in fact exist/work.
If anyone has any experience using the multiplexing protocol in a firewall environment please post your experience here.
Thanks,
DanHi Dan,
I have had a lot of success using proxies to work around firewalled clients. I host a free software project at java.net dedicated to spontaneously linking Virtual Machines using RMI.
https://cajo.dev.java.net
It uses two classes, ClientProxy & ItemProxy, to implement the protocol.
More detailed information about this can be found here.
Best wishes,
John -
Problem: new entered data is saved but I am facing one error message --- no
This is a module program for gate entry of materials(miro). This is a simple entry form which updates z tables with data entered. I have to send the new record details automatically through mail to the particular vendor email id from where the material has been purchased.
Problem: new entered data is saved but I am facing one error message --- no authorization to unpack list with rfc when the program is sending list through mail.
PROGRAM ZMMI001_GRN_ENTRY_BARCODE MESSAGE-ID ZMM .
*Table Declaration
TABLES : EKKO , EKPO , LFA1 , MARC ,
MARD , J_1IMTCHID , EKET , MSEG,
MKPF , ZMMT001_GRN_GATE,
ZMMT002_GRN_ITEM.
TABLES: ADR6.
*Table Control Declaration
CONTROLS : TC1 TYPE TABLEVIEW USING SCREEN 1000.
DATA: COLS LIKE LINE OF TC1-COLS.
*Internal Table Declaration
DATA : BEGIN OF IT_TC1 OCCURS 0,
SEL,
SNO(2) TYPE C,
ITEMCODE(18) TYPE C,
ITEMNAME(40) TYPE C,
QUANTITY TYPE P DECIMALS 2,
EXCISE(13) TYPE P DECIMALS 2,
END OF IT_TC1.
DATA : IT_TEMP_TC1 LIKE IT_TC1 OCCURS 0 WITH HEADER LINE.
DATA: BDCDATA LIKE BDCDATA OCCURS 0 WITH HEADER LINE.
DATA : IT_EKPO LIKE EKPO OCCURS 0 WITH HEADER LINE.
DATA : IT_EKKO LIKE EKKO OCCURS 0 WITH HEADER LINE.
DATA : IT_EKET LIKE EKET OCCURS 0 WITH HEADER LINE.
DATA : WK_ZMMT01 LIKE ZMMT001_GRN_GATE.
DATA : IT_ZMMT01 LIKE ZMMT001_GRN_GATE OCCURS 0 WITH HEADER LINE.
DATA : IT_ZMMT02 LIKE ZMMT002_GRN_ITEM OCCURS 0 WITH HEADER LINE.
DATA : BEGIN OF IT_TEMP_EKPO OCCURS 0,
EBELN LIKE EKPO-EBELN,
EBELP LIKE EKPO-EBELP,
MATNR LIKE EKPO-MATNR,
END OF IT_TEMP_EKPO.
DATA : BEGIN OF IT_MSEG OCCURS 0,
MBLNR LIKE MSEG-MBLNR,
MJAHR LIKE MSEG-MJAHR,
ZEILE LIKE MSEG-ZEILE,
BWART LIKE MSEG-BWART,
MATNR LIKE MSEG-MATNR,
EBELN LIKE MSEG-EBELN,
EBELP LIKE MSEG-EBELP,
BUDAT LIKE MKPF-BUDAT,
MENGE LIKE MSEG-MENGE,
END OF IT_MSEG.
DATA : BEGIN OF IT_TEMP_MSEG OCCURS 0,
MBLNR LIKE MSEG-MBLNR,
MJAHR LIKE MSEG-MJAHR,
ZEILE LIKE MSEG-ZEILE,
BWART LIKE MSEG-BWART,
EBELN LIKE MSEG-EBELN,
END OF IT_TEMP_MSEG.
DATA : BEGIN OF IT_TEMP_MKPF OCCURS 0,
MBLNR LIKE MKPF-MBLNR,
MJAHR LIKE MKPF-MJAHR,
BUDAT LIKE MKPF-BUDAT,
BKTXT LIKE MKPF-BKTXT,
END OF IT_TEMP_MKPF.
*Data Declaration
DATA : WK_SNO TYPE I,
WK_LIFNR LIKE LFA1-LIFNR,
WK_EBELN(10) TYPE C,
WK_VBELN(10) TYPE C,
WK_FKDAT TYPE D,
WK_NAME LIKE LFA1-NAME1,
WK_SCHNO(10) TYPE C,
WK_CHALNO(10) TYPE C,
WK_CHALDATE(10) TYPE C,
WK_GRNO(10) TYPE C,
WK_GRDATE(10) TYPE C,
WK_VEHICLE(10) TYPE C,
WK_CARRIER(10) TYPE C,
WK_FREIGHT(13) TYPE P DECIMALS 2,
WK_MDOC(3) TYPE C,
WK_DEPT(7) TYPE C,
WK_MODE(7) TYPE C,
WK_BASIC(13) TYPE P DECIMALS 2,
WK_EXCISE(13) TYPE P DECIMALS 2,
WK_TAX(13) TYPE P DECIMALS 2,
WK_APPVAL(13) TYPE P DECIMALS 2,
WK_CHAL(2) TYPE C,
WK_FORM38(9) TYPE C,
WK_COMMENT(30) TYPE C,
WK_MAKTX(40) TYPE C,
WK_LINES TYPE I,
WK_TOTAL LIKE MARD-LABST,
WK_LGORT LIKE MARD-LGORT,
WK_EXCISE_IND,
WK_TOT_EXCISE LIKE EKPO-NETWR,
WK_DIFF LIKE EKPO-NETWR,
WK_BSTYP LIKE EKKO-BSTYP,
WK_BSART LIKE EKKO-BSART,
WK_DIFF_QTY LIKE EKET-MENGE,
WK_101_QTY LIKE EKET-MENGE,
WK_102_QTY LIKE EKET-MENGE,
WK_122_QTY LIKE EKET-MENGE,
WK_WERKS LIKE EKPO-WERKS,
WK_CHAR_SNO TYPE STRING,
WK_DATE LIKE SY-DATUM,
WK_TIME LIKE SY-UZEIT.
DATA : WK_DATE1 LIKE SY-DATUM,
WK_DATE2 LIKE SY-DATUM,
WK_FISYEAR TYPE I,
WK_CHAR_YEAR(20) TYPE C.
DATA : V_UCOMM TYPE SY-UCOMM,
V_INDEX(10) TYPE C,
V_QUANTITY(8) TYPE C.
**DECLARATION FOR INPUT HELP*
TYPES : BEGIN OF VALUES,
TXZ01 LIKE EKPO-TXZ01,
MENGE LIKE EKPO-MENGE,
MATNR LIKE EKPO-MATNR,
END OF VALUES.
TYPES : BEGIN OF VALUES1,
EBELN LIKE EKKO-EBELN,
END OF VALUES1.
TYPES : BEGIN OF VALUES2,
NAME1 LIKE LFA1-NAME1,
LIFNR LIKE LFA1-LIFNR,
END OF VALUES2.
DATA: PROGNAME LIKE SY-REPID,
DYNNUM LIKE SY-DYNNR,
DYNPRO_VALUES TYPE TABLE OF DYNPREAD,
FIELD_VALUE LIKE LINE OF DYNPRO_VALUES,
VALUES_TAB TYPE TABLE OF VALUES WITH HEADER LINE,
VALUES_TAB1 TYPE TABLE OF VALUES1,
VALUE_EBELN TYPE TABLE OF VALUES1.
VALUES_TAB2 TYPE TABLE OF VALUES2.
DATA : VALUES_TAB2 TYPE VALUES2 OCCURS 0 WITH HEADER LINE.
DATA : RETURN_TAB LIKE DDSHRETVAL OCCURS 0 WITH HEADER LINE.
*nidhi
DATA: BEGIN OF IT_LFA1 OCCURS 0,
LIFNR LIKE LFA1-LIFNR,
ADRNR LIKE LFA1-ADRNR,
END OF IT_LFA1.
DATA: BEGIN OF IT_ADR6 OCCURS 0,
ADDRNUMBER TYPE ADR6-ADDRNUMBER,
SMTP_ADDR TYPE ADR6-SMTP_ADDR,
END OF IT_ADR6.
*nidhi
*& Module FILL_TABLE_CONTROL OUTPUT
text
MODULE FILL_TABLE_CONTROL OUTPUT.
READ TABLE IT_TEMP_TC1 INTO IT_TC1 INDEX TC1-CURRENT_LINE.
ENDMODULE. " FILL_TABLE_CONTROL OUTPUT
*& Module READ_TABLE_CONTROL INPUT
text
MODULE READ_TABLE_CONTROL INPUT.
*Validation for Item code
CLEAR : EKPO-MATNR,
EKPO-WERKS.
IF sy-uname = 'GATE1020'.
IF ( SY-UNAME = 'GATE1010' OR SY-UNAME = 'GATE1020' OR
SY-UNAME = 'GATE1030' OR SY-UNAME = 'GATE1040' OR
SY-UNAME = 'GATE1050' OR SY-UNAME = 'GATE1060' OR
SY-UNAME = 'GATE1070' OR SY-UNAME = 'GATE1080' OR
SY-UNAME = 'ABAP' ).
**SELECT SINGLE bstyp FROM EKKO INTO WK_BSTYP WHERE ebeln = wk_ebeln.
**SELECT SINGLE bsart FROM EKKO INTO WK_BSART WHERE ebeln = wk_ebeln.
READ TABLE VALUES_TAB WITH KEY MATNR = IT_TC1-ITEMCODE.
**ELSE.
SELECT SINGLE MATNR WERKS
FROM EKPO CLIENT SPECIFIED
INTO (EKPO-MATNR , EKPO-WERKS )
WHERE MANDT = SY-MANDT AND
EBELN = WK_EBELN AND
MATNR EQ IT_TC1-ITEMCODE.
ENDIF.
IF SY-SUBRC NE 0 AND NOT IT_TC1-ITEMCODE IS INITIAL.
CLEAR it_tc1.
MESSAGE E003 WITH TEXT-002.
ELSE.
SELECT SINGLE MAKTX FROM MAKT
CLIENT SPECIFIED
INTO WK_MAKTX WHERE
MANDT = SY-MANDT AND
MATNR = IT_TC1-ITEMCODE AND SPRAS = SY-LANGU.
ENDIF.
ENDIF.
**SELECT SINGLE bstyp FROM EKKO INTO WK_BSTYP WHERE ebeln = wk_ebeln.
**SELECT SINGLE bsart FROM EKKO INTO WK_BSART WHERE ebeln = wk_ebeln.
IF ( SY-UNAME = 'GATE1010' OR SY-UNAME = 'GATE1020' OR
SY-UNAME = 'GATE1030' OR SY-UNAME = 'GATE1040' OR
SY-UNAME = 'GATE1050' OR SY-UNAME = 'GATE1060' OR
SY-UNAME = 'GATE1070' OR SY-UNAME = 'GATE1080' OR SY-UNAME =
'ABAP' ).
IF WK_BSART = 'ZLR' .
Validation for Quantity.
IF NOT IT_TC1-QUANTITY IS INITIAL.
READ TABLE VALUES_TAB WITH KEY MATNR = IT_TC1-ITEMCODE.
IF SY-SUBRC EQ 0 AND IT_TC1-QUANTITY GT VALUES_TAB-MENGE.
MESSAGE E003 WITH TEXT-013.
ENDIF.
ENDIF.
ENDIF.
ENDIF.
*Validation for Max.Stock Level
CLEAR : MARC-MABST.
SELECT SINGLE MABST FROM MARC
CLIENT SPECIFIED
INTO MARC-MABST
WHERE MANDT = SY-MANDT AND
MATNR = IT_TC1-ITEMCODE AND
WERKS = EKPO-WERKS.
CLEAR : MARD-LABST ,
MARD-INSME .
SELECT SINGLE labst insme FROM mard
CLIENT SPECIFIED
INTO (mard-labst , mard-insme )
WHERE MANDT = SY-MANDT AND
matnr = it_tc1-itemcode
AND werks = ekpo-werks.
SELECT SUM( LABST ) SUM( INSME ) FROM MARD
CLIENT SPECIFIED
INTO (MARD-LABST , MARD-INSME )
WHERE MANDT = SY-MANDT AND
MATNR = IT_TC1-ITEMCODE
AND WERKS = EKPO-WERKS.
CLEAR : WK_TOTAL.
WK_TOTAL = MARD-LABST + MARD-INSME + IT_TC1-QUANTITY.
IF WK_BSART = 'ZLR'.
IF WK_TOTAL GT MARC-MABST.
MESSAGE E001 WITH IT_TC1-ITEMCODE.
ENDIF.
ENDIF.
Appending the table control data to Internal table
READ TABLE IT_TEMP_TC1 INDEX TC1-CURRENT_LINE.
IT_TC1-SNO = TC1-CURRENT_LINE.
IF SY-SUBRC EQ 0.
MODIFY IT_TEMP_TC1 FROM IT_TC1 INDEX TC1-CURRENT_LINE.
ELSE.
READ TABLE IT_TEMP_TC1 WITH KEY ITEMCODE = IT_TC1-ITEMCODE.
IF SY-SUBRC NE 0.
IT_TC1-ITEMNAME = WK_MAKTX.
IF IT_TC1-ITEMCODE IS INITIAL.
CLEAR IT_TC1.
ELSE.
APPEND IT_TC1 TO IT_TEMP_TC1.
ENDIF.
ELSE.
MESSAGE E003 WITH TEXT-004.
ENDIF.
ENDIF.
CLEAR : J_1IMTCHID-J_1ICAPIND.
SELECT SINGLE J_1ICAPIND FROM J_1IMTCHID
CLIENT SPECIFIED
INTO J_1IMTCHID-J_1ICAPIND
WHERE MANDT = SY-MANDT AND
MATNR = IT_TC1-ITEMCODE AND
WERKS = EKPO-WERKS.
IF SY-SUBRC EQ 0.
IF J_1IMTCHID-J_1ICAPIND = 'N'.
WK_EXCISE_IND = 'N'.
ELSE.
WK_EXCISE_IND = 'E'.
ENDIF.
ENDIF.
ENDMODULE. " READ_TABLE_CONTROL INPUT
*& Module USER_COMMAND_1000 INPUT
text
MODULE USER_COMMAND_1000 INPUT.
V_UCOMM = SY-UCOMM.
CASE V_UCOMM.
WHEN 'WK_SAVE'.
IF WK_APPVAL > 0.
IF ( SY-UNAME = 'STORE1010' OR SY-UNAME = 'STORE1020' OR
SY-UNAME = 'STORE1030' OR SY-UNAME = 'STORE1040' OR
SY-UNAME = 'STORE1050' OR SY-UNAME = 'STORE1060' OR
SY-UNAME = 'STORE1070' OR SY-UNAME = 'STORE1080' ).
CALL FUNCTION 'CONVERSION_EXIT_ALPHA_OUTPUT'
EXPORTING
INPUT = WK_VBELN
IMPORTING
OUTPUT = WK_VBELN.
SELECT * FROM EKKO INTO TABLE IT_EKKO WHERE EBELN = WK_EBELN
AND
LOEKZ NE 'X'.
IF SY-SUBRC EQ 0.
READ TABLE IT_EKKO INDEX 1.
WK_BSTYP = IT_EKKO-BSTYP.
ENDIF.
SELECT * FROM EKPO CLIENT SPECIFIED
INTO TABLE IT_EKPO WHERE
MANDT = SY-MANDT AND
EBELN = WK_EBELN AND LOEKZ NE 'X'.
SORT IT_EKPO BY EBELN EBELP.
IF WK_BSTYP = 'L'.
SELECT * FROM EKET CLIENT SPECIFIED
INTO TABLE IT_EKET WHERE
MANDT = SY-MANDT AND
EBELN = WK_EBELN.
IF SY-SUBRC EQ 0.
SORT IT_EKET BY EBELN EBELP ETENR.
LOOP AT IT_EKPO.
CLEAR WK_DIFF_QTY.
LOOP AT IT_EKET WHERE EBELN = IT_EKPO-EBELN
AND EBELP = IT_EKPO-EBELP
AND EINDT LE SY-DATUM.
WK_DIFF_QTY = WK_DIFF_QTY + IT_EKET-MENGE -
IT_EKET-WEMNG.
ENDLOOP.
IF WK_DIFF_QTY GT 0.
IT_TEMP_EKPO-EBELN = IT_EKET-EBELN.
IT_TEMP_EKPO-EBELP = IT_EKET-EBELP.
IT_TEMP_EKPO-MATNR = IT_EKPO-MATNR.
APPEND IT_TEMP_EKPO.
ENDIF.
ENDLOOP.
ENDIF.
ELSEIF WK_BSTYP = 'F'.
SELECT * FROM EKET
CLIENT SPECIFIED
INTO TABLE IT_EKET
WHERE MANDT = SY-MANDT AND
EBELN = IT_EKPO-EBELN.
LOOP AT IT_EKPO.
CLEAR : WK_DIFF_QTY.
READ TABLE IT_EKET WITH KEY EBELN = IT_EKPO-EBELN
EBELP = IT_EKPO-EBELP.
IF SY-SUBRC EQ 0.
WK_DIFF_QTY = IT_EKPO-MENGE - IT_EKET-WEMNG.
ENDIF.
IF WK_DIFF_QTY GT 0.
IT_TEMP_EKPO-EBELN = IT_EKET-EBELN.
IT_TEMP_EKPO-EBELP = IT_EKET-EBELP.
IT_TEMP_EKPO-MATNR = IT_EKPO-MATNR.
APPEND IT_TEMP_EKPO.
ENDIF.
ENDLOOP.
ENDIF.
SORT IT_TEMP_EKPO BY EBELN EBELP.
PERFORM BDC_DYNPRO USING 'SAPLMIGO' '0001'.
PERFORM BDC_FIELD USING 'BDC_OKCODE'
'=OK_GO'.
PERFORM BDC_FIELD USING 'BDC_CURSOR'
'GODYNPRO-PO_NUMBER'.
PERFORM BDC_FIELD USING 'GODYNPRO-PO_NUMBER'
WK_EBELN.
PERFORM BDC_DYNPRO USING 'SAPLMIGO' '0001'.
PERFORM BDC_FIELD USING 'BDC_OKCODE'
'=OK_GO'.
IF WK_EXCISE_IND = 'E'.
PERFORM BDC_FIELD USING 'J_1IEXHEAD-EXNUM'
WK_VBELN.
PERFORM BDC_FIELD USING 'J_1IEXHEAD-EXDAT'
WK_FKDAT.
PERFORM BDC_FIELD USING 'GOHEAD-LFSNR'
WK_VBELN.
ELSE.
PERFORM BDC_FIELD USING 'GOHEAD-LFSNR'
WK_VBELN.
ENDIF.
CLEAR : WK_CHAR_SNO.
WK_CHAR_SNO = WK_SNO.
CONDENSE WK_CHAR_SNO NO-GAPS.
PERFORM BDC_FIELD USING 'GOHEAD-BKTXT'
WK_CHAR_SNO.
LOOP AT IT_TEMP_TC1.
READ TABLE IT_TEMP_EKPO WITH KEY MATNR =
IT_TEMP_TC1-ITEMCODE.
IF SY-SUBRC EQ 0.
CLEAR V_INDEX.
V_INDEX = SY-TABIX.
CONDENSE V_INDEX NO-GAPS.
PERFORM BDC_DYNPRO USING 'SAPLMIGO' '0001'.
PERFORM BDC_FIELD USING 'BDC_OKCODE'
'=OK_GO'.
PERFORM BDC_FIELD USING 'BDC_CURSOR'
'GODYNPRO-DETAIL_ZEILE'.
PERFORM BDC_FIELD USING 'GODYNPRO-DETAIL_ZEILE'
PERFORM BDC_FIELD USING 'GODYNPRO-DETAIL_ZEILE'
V_INDEX.
PERFORM BDC_DYNPRO USING 'SAPLMIGO' '0001'.
PERFORM BDC_FIELD USING 'BDC_OKCODE'
'=OK_GO'.
PERFORM BDC_FIELD USING 'BDC_CURSOR'
'GOITEM-ERFMG'.
PERFORM BDC_FIELD USING 'GOITEM-ERFMG'
CLEAR V_QUANTITY.
V_QUANTITY = IT_TEMP_TC1-QUANTITY.
CONDENSE V_QUANTITY NO-GAPS.
PERFORM BDC_FIELD USING 'GOITEM-ERFMG'
V_QUANTITY.
PERFORM BDC_FIELD USING 'GOITEM-LSMNG'
V_QUANTITY.
perform bdc_field using 'GOITEM-LGOBE'
WK_LGORT.
ENDIF.
ENDLOOP.
CALL TRANSACTION 'MIGO' USING BDCDATA
MODE 'E'
UPDATE 'L'.
IF SY-SUBRC NE 0.
MESSAGE E003 WITH TEXT-003.
LOOP AT SCREEN.
SCREEN-INPUT = 1.
MODIFY SCREEN.
ENDLOOP.
ENDIF.
LEAVE PROGRAM.
ELSE.
CLEAR : WK_TOT_EXCISE.
IF NOT WK_EXCISE IS INITIAL.
LOOP AT IT_TEMP_TC1.
READ TABLE IT_EKPO WITH KEY MATNR = IT_TEMP_TC1-ITEMCODE.
IF SY-SUBRC EQ 0.
WK_TOT_EXCISE = WK_TOT_EXCISE +
( ( ( IT_EKPO-NETWR / IT_EKPO-MENGE ) * 16 / 100 )
IT_TEMP_TC1-QUANTITY ).
ENDIF.
ENDLOOP.
WK_DIFF = WK_EXCISE - WK_TOT_EXCISE.
IF WK_DIFF LE 0.
WK_DIFF = -1 * WK_DIFF.
ENDIF.
IF WK_DIFF GE 1.
WK_COMMENT = 'Difference in Excise. Please Check!'.
ENDIF.
ENDIF.
SELECT * FROM EKPO CLIENT SPECIFIED
INTO TABLE IT_EKPO WHERE
MANDT = SY-MANDT AND
EBELN = WK_EBELN.
IF SY-SUBRC EQ 0.
READ TABLE IT_EKPO INDEX 1.
WK_WERKS = IT_EKPO-WERKS.
ENDIF.
SELECT * FROM ZMMT001_GRN_GATE
CLIENT SPECIFIED
INTO TABLE IT_ZMMT01
WHERE MANDT = SY-MANDT AND
WERKS = WK_WERKS.
IF SY-SUBRC EQ 0.
SORT IT_ZMMT01 BY SERIAL DESCENDING.
READ TABLE IT_ZMMT01 INDEX 1.
WK_SNO = IT_ZMMT01-SERIAL + 1.
ELSE.
WK_SNO = 1.
ENDIF.
CLEAR WK_ZMMT01.
WK_ZMMT01-MANDT = SY-MANDT.
WK_ZMMT01-SERIAL = WK_SNO.
WK_ZMMT01-WERKS = WK_WERKS.
WK_ZMMT01-EBELN = WK_EBELN.
WK_ZMMT01-LIFNR = WK_LIFNR.
WK_ZMMT01-CHALNO = WK_CHALNO.
WK_ZMMT01-CHALDATE = WK_CHALDATE.
WK_ZMMT01-BILLNO = WK_VBELN.
WK_ZMMT01-BILLDATE = WK_FKDAT.
WK_ZMMT01-GRNUMBER = WK_GRNO.
WK_ZMMT01-GRDATE = WK_GRDATE.
WK_ZMMT01-VEHICLE = WK_VEHICLE.
WK_ZMMT01-CARRIER = WK_CARRIER.
WK_ZMMT01-FREIGHT = WK_FREIGHT.
WK_ZMMT01-MDOC = WK_MDOC.
WK_ZMMT01-DEPT = WK_DEPT.
WK_ZMMT01-PAYMODE = WK_MODE.
WK_ZMMT01-BASIC = WK_BASIC.
WK_ZMMT01-EXCISE = WK_EXCISE.
WK_ZMMT01-TAXAMT = WK_TAX.
WK_ZMMT01-APPVAL = WK_APPVAL.
WK_ZMMT01-CHALINV = WK_CHAL.
WK_ZMMT01-FORM38 = WK_FORM38.
WK_ZMMT01-COMMENTS = WK_COMMENT.
WK_ZMMT01-CDATE = SY-DATUM.
WK_ZMMT01-CTIME = SY-UZEIT.
WK_ZMMT01-PERSON = SY-UNAME.
IF WK_FKDAT+4(2) = '04' OR
WK_FKDAT+4(2) = '05' OR
WK_FKDAT+4(2) = '06' OR
WK_FKDAT+4(2) = '07' OR
WK_FKDAT+4(2) = '08' OR
WK_FKDAT+4(2) = '09' OR
WK_FKDAT+4(2) = '10' OR
WK_FKDAT+4(2) = '11' OR
WK_FKDAT+4(2) = '12'.
WK_DATE10(4) = WK_FKDAT0(4).
WK_DATE1+4(2) = '04'.
WK_DATE1+6(2) = '01'.
ELSEIF
WK_FKDAT+4(2) = '01' OR
WK_FKDAT+4(2) = '02' OR
WK_FKDAT+4(2) = '03'.
WK_FISYEAR = WK_FKDAT+0(4).
WK_FISYEAR = WK_FISYEAR - 1.
WK_CHAR_YEAR = WK_FISYEAR.
CONDENSE WK_CHAR_YEAR NO-GAPS.
WK_DATE1+0(4) = WK_CHAR_YEAR.
WK_DATE1+4(2) = '04'.
WK_DATE1+6(2) = '01'.
ELSE.
ENDIF.
nidhi
SELECT LIFNR ADRNR FROM LFA1 INTO TABLE IT_LFA1 WHERE LIFNR =
WK_ZMMT01-LIFNR.
SELECT ADDRNUMBER SMTP_ADDR FROM ADR6 INTO TABLE IT_ADR6 FOR
ALL ENTRIES IN IT_LFA1 WHERE ADDRNUMBER = IT_LFA1-ADRNR.
SELECT SINGLE * FROM ZMMT001_GRN_GATE
CLIENT SPECIFIED
WHERE MANDT = SY-MANDT AND
WERKS = WK_WERKS AND
LIFNR = WK_LIFNR AND
BILLNO = WK_VBELN AND
BILLDATE GE WK_DATE1.
IF SY-SUBRC EQ 0.
MESSAGE E003 WITH TEXT-006.
ENDIF.
CLEAR IT_ZMMT02.
REFRESH IT_ZMMT02.
LOOP AT IT_TEMP_TC1.
IT_ZMMT02-MANDT = SY-MANDT.
IT_ZMMT02-SERIAL = WK_SNO.
IT_ZMMT02-WERKS = WK_WERKS.
IT_ZMMT02-EBELN = WK_EBELN.
IT_ZMMT02-ITEMCODE = IT_TEMP_TC1-ITEMCODE.
IT_ZMMT02-DESCRIPTION = IT_TEMP_TC1-ITEMNAME.
IT_ZMMT02-QUANTITY = IT_TEMP_TC1-QUANTITY.
IT_ZMMT02-EXCISE = IT_TEMP_TC1-EXCISE.
APPEND IT_ZMMT02.
CLEAR IT_ZMMT02.
ENDLOOP.
IF IT_ZMMT02[] IS INITIAL.
MESSAGE E003 WITH TEXT-007.
ENDIF.
IF SY-UNAME = 'GATE1010' AND WK_WERKS NE '1010'.
MESSAGE E003 WITH TEXT-008.
ELSEIF SY-UNAME = 'GATE1020' AND WK_WERKS NE '1020'.
MESSAGE E003 WITH TEXT-008.
ELSEIF SY-UNAME = 'GATE1030' AND WK_WERKS NE '1030'.
MESSAGE E003 WITH TEXT-008.
ELSEIF SY-UNAME = 'GATE1040' AND WK_WERKS NE '1040'.
MESSAGE E003 WITH TEXT-008.
ELSEIF SY-UNAME = 'GATE1050' AND WK_WERKS NE '1050'.
MESSAGE E003 WITH TEXT-008.
ELSEIF SY-UNAME = 'GATE1060' AND WK_WERKS NE '1060'.
MESSAGE E003 WITH TEXT-008.
ELSEIF SY-UNAME = 'ABAP' AND WK_WERKS NE 'ABAP'.
MESSAGE E003 WITH TEXT-008.
ELSEIF SY-UNAME = 'GATE1070' AND WK_WERKS NE '1070'.
MESSAGE E003 WITH TEXT-008.
ELSEIF SY-UNAME = 'GATE1080' AND WK_WERKS NE '1080'.
MESSAGE E003 WITH TEXT-008.
ENDIF.
INSERT ZMMT001_GRN_GATE FROM WK_ZMMT01.
INSERT ZMMT002_GRN_ITEM FROM TABLE IT_ZMMT02.
IF SY-SUBRC EQ 0.
COMMIT WORK.
MESSAGE I002 WITH WK_SNO.
********nidhi*******************************************************
CALL SCREEN 1001.
CLEAR WK_LIFNR.
CLEAR WK_EBELN.
CLEAR WK_NAME.
CLEAR WK_SCHNO.
CLEAR WK_CHALNO.
CLEAR WK_CHALDATE.
CLEAR WK_VBELN.
CLEAR WK_FKDAT.
CLEAR WK_GRNO.
CLEAR WK_GRDATE.
CLEAR WK_VEHICLE.
CLEAR WK_CARRIER.
CLEAR WK_FREIGHT.
CLEAR WK_MDOC.
CLEAR WK_DEPT.
CLEAR WK_MODE.
CLEAR WK_BASIC.
CLEAR WK_EXCISE.
CLEAR WK_TAX.
CLEAR WK_APPVAL.
CLEAR WK_CHAL.
CLEAR WK_FORM38.
REFRESH IT_TEMP_TC1.
CLEAR WK_FISYEAR.
CLEAR WK_DATE1.
CLEAR WK_CHAR_YEAR.
CALL TRANSACTION 'ZMMI001'.
ELSE.
ROLLBACK WORK.
MESSAGE E003 WITH TEXT-006.
ENDIF.
ENDIF.
ELSE.
MESSAGE E009 WITH TEXT-014.
ENDIF.
WHEN 'WK_EXIT'.
WHEN 'WK_CLEAR'.
CLEAR WK_LIFNR.
CLEAR WK_EBELN.
CLEAR WK_NAME.
CLEAR WK_SCHNO.
CLEAR WK_CHALNO.
CLEAR WK_CHALDATE.
CLEAR WK_VBELN.
CLEAR WK_FKDAT.
CLEAR WK_GRNO.
CLEAR WK_GRDATE.
CLEAR WK_VEHICLE.
CLEAR WK_CARRIER.
CLEAR WK_FREIGHT.
CLEAR WK_MDOC.
CLEAR WK_DEPT.
CLEAR WK_MODE.
CLEAR WK_BASIC.
CLEAR WK_EXCISE.
CLEAR WK_TAX.
CLEAR WK_APPVAL.
CLEAR WK_CHAL.
CLEAR WK_FORM38.
REFRESH IT_TEMP_TC1 .
CLEAR WK_FISYEAR.
CLEAR WK_DATE1.
CLEAR WK_CHAR_YEAR.
WHEN 'DELETE'.
DELETE IT_TEMP_TC1 WHERE SEL = 'X'.
ENDCASE.
ENDMODULE. " USER_COMMAND_1000 INPUT
Start new screen *
FORM BDC_DYNPRO USING PROGRAM DYNPRO.
CLEAR BDCDATA.
BDCDATA-PROGRAM = PROGRAM.
BDCDATA-DYNPRO = DYNPRO.
BDCDATA-DYNBEGIN = 'X'.
APPEND BDCDATA.
ENDFORM. "BDC_DYNPRO
Insert field *
FORM BDC_FIELD USING FNAM FVAL.
IF FVAL <> NODATA.
CLEAR BDCDATA.
BDCDATA-FNAM = FNAM.
BDCDATA-FVAL = FVAL.
APPEND BDCDATA.
ENDIF.
ENDFORM. "BDC_FIELD
*& Module STATUS_1000 OUTPUT
text
MODULE STATUS_1000 OUTPUT.
SET PF-STATUS 'GRN'.
SET TITLEBAR 'GRN'.
PROGNAME = SY-REPID.
DYNNUM = SY-DYNNR.
CLEAR: FIELD_VALUE, DYNPRO_VALUES.
FIELD_VALUE-FIELDNAME = 'IT_TC1-ITEMCODE'.
APPEND FIELD_VALUE TO DYNPRO_VALUES.
FIELD_VALUE-FIELDNAME = 'WK_EBELN'.
APPEND FIELD_VALUE TO DYNPRO_VALUES.
FIELD_VALUE-FIELDNAME = 'WK_LIFNR'.
APPEND FIELD_VALUE TO DYNPRO_VALUES.
LOOP AT SCREEN.
IF SCREEN-NAME NE 'WK_COMMENT'.
SCREEN-INPUT = 1.
ENDIF.
MODIFY SCREEN.
ENDLOOP.
IF ( SY-UNAME = 'GATE1010' OR SY-UNAME = 'GATE1020' OR
SY-UNAME = 'GATE1030' OR SY-UNAME = 'GATE1040' OR
SY-UNAME = 'GATE1050' OR SY-UNAME = 'GATE1060' OR
SY-UNAME = 'GATE1070' OR SY-UNAME = 'GATE1080' OR SY-UNAME =
'ABAP' ).
LOOP AT SCREEN.
IF SCREEN-NAME = 'WK_SNO' OR
SCREEN-NAME = 'SNO' OR
SCREEN-NAME = 'WK_COMMENT' .
SCREEN-INVISIBLE = 1.
SCREEN-ACTIVE = 0.
SCREEN-INPUT = 0.
SCREEN-OUTPUT = 0.
ENDIF.
MODIFY SCREEN.
ENDLOOP.
IF WK_LIFNR IS INITIAL.
SET CURSOR FIELD 'WK_LIFNR'.
ELSEIF WK_EBELN IS INITIAL.
SET CURSOR FIELD 'WK_EBELN'.
ELSEIF WK_VBELN IS INITIAL.
SET CURSOR FIELD 'WK_VBELN'.
ELSEIF WK_FKDAT IS INITIAL.
SET CURSOR FIELD 'WK_FKDAT'.
ENDIF.
ELSE.
IF NOT WK_SNO IS INITIAL.
IF SY-UNAME = 'STORE1010'.
WK_WERKS = '1010'.
ELSEIF SY-UNAME = 'STORE1020'.
WK_WERKS = '1020'.
ELSEIF SY-UNAME = 'STORE1030'.
WK_WERKS = '1030'.
ELSEIF SY-UNAME = 'STORE1040'.
WK_WERKS = '1040'.
ELSEIF SY-UNAME = 'STORE1050'.
WK_WERKS = '1050'.
ELSEIF SY-UNAME = 'STORE1060'.
WK_WERKS = '1060'.
ELSEIF SY-UNAME = 'STORE1070'.
WK_WERKS = '1070'.
ELSEIF SY-UNAME = 'STORE1080'.
WK_WERKS = '1080'.
ENDIF.
SELECT SINGLE * FROM ZMMT001_GRN_GATE INTO WK_ZMMT01
WHERE SERIAL = WK_SNO AND
WERKS = WK_WERKS.
IF SY-SUBRC EQ 0.
WK_WERKS = WK_ZMMT01-WERKS.
WK_EBELN = WK_ZMMT01-EBELN.
WK_LIFNR = WK_ZMMT01-LIFNR.
WK_CHALNO = WK_ZMMT01-CHALNO.
WK_CHALDATE = WK_ZMMT01-CHALDATE.
WK_VBELN = WK_ZMMT01-BILLNO.
WK_FKDAT = WK_ZMMT01-BILLDATE.
WK_GRNO = WK_ZMMT01-GRNUMBER.
WK_GRDATE = WK_ZMMT01-GRDATE.
WK_VEHICLE = WK_ZMMT01-VEHICLE.
WK_CARRIER = WK_ZMMT01-CARRIER.
WK_FREIGHT = WK_ZMMT01-FREIGHT.
WK_MDOC = WK_ZMMT01-MDOC.
WK_DEPT = WK_ZMMT01-DEPT.
WK_MODE = WK_ZMMT01-PAYMODE.
WK_BASIC = WK_ZMMT01-BASIC.
WK_EXCISE = WK_ZMMT01-EXCISE.
WK_TAX = WK_ZMMT01-TAXAMT.
WK_APPVAL = WK_ZMMT01-APPVAL.
WK_CHAL = WK_ZMMT01-CHALINV.
WK_FORM38 = WK_ZMMT01-FORM38.
WK_COMMENT = WK_ZMMT01-COMMENTS.
SELECT * FROM ZMMT002_GRN_ITEM INTO TABLE IT_ZMMT02
WHERE SERIAL = WK_SNO AND
WERKS = WK_WERKS.
IF SY-SUBRC EQ 0.
CLEAR IT_TEMP_TC1.
REFRESH IT_TEMP_TC1.
LOOP AT IT_ZMMT02.
IT_TEMP_TC1-SNO = SY-TABIX.
IT_TEMP_TC1-ITEMCODE = IT_ZMMT02-ITEMCODE.
IT_TEMP_TC1-ITEMNAME = IT_ZMMT02-DESCRIPTION.
IT_TEMP_TC1-QUANTITY = IT_ZMMT02-QUANTITY.
APPEND IT_TEMP_TC1.
CLEAR IT_TEMP_TC1.
ENDLOOP.
ENDIF.
ENDIF.
LOOP AT SCREEN.
IF ( SCREEN-NAME NE 'WK_SNO' ) AND
( SCREEN-NAME NE 'WK_SAVE' ) AND
( SCREEN-NAME NE 'WK_CLEAR' ) AND
( SCREEN-NAME NE 'WK_EXIT' ).
SCREEN-INPUT = 0.
ENDIF.
MODIFY SCREEN.
ENDLOOP.
LOOP AT TC1-COLS INTO COLS WHERE INDEX GT 0.
COLS-SCREEN-INPUT = '0'.
MODIFY TC1-COLS FROM COLS INDEX SY-TABIX.
ENDLOOP.
ENDIF.
ENDIF.
WK_DATE = SY-DATUM.
WK_TIME = SY-UZEIT.
TC1-LINES = 20.
ENDMODULE. " STATUS_1000 OUTPUT
*& Module EXIT_1000 INPUT
text
MODULE EXIT_1000 INPUT.
CASE SY-UCOMM.
WHEN 'BACK' OR 'CANCEL' OR 'EXIT' OR 'WK_EXIT'.
LEAVE PROGRAM.
ENDCASE.
ENDMODULE. " EXIT_1000 INPUT
*& Module ITEM_CODE INPUT
text
MODULE ITEM_CODE INPUT.
REFRESH : VALUES_TAB.
CLEAR : VALUES_TAB.
IF ( SY-UNAME = 'GATE1020' OR
SY-UNAME = 'GATE1010' OR
SY-UNAME = 'GATE1030' OR
SY-UNAME = 'GATE1040' OR
SY-UNAME = 'GATE1050' OR
SY-UNAME = 'GATE1060' OR
SY-UNAME = 'GATE1070' OR
SY-UNAME = 'STORE1020' OR
SY-UNAME = 'STORE1030' OR
SY-UNAME = 'STORE1040' OR
SY-UNAME = 'STORE1050' OR
SY-UNAME = 'STORE1060' OR
SY-UNAME = 'STORE1070' OR
SY-UNAME = 'STORE1010' OR
SY-UNAME = 'ABAP' ).
SELECT * FROM EKKO CLIENT SPECIFIED
INTO TABLE IT_EKKO WHERE
MANDT = SY-MANDT AND
EBELN = WK_EBELN AND
LOEKZ NE 'X'.
IF SY-SUBRC EQ 0.
READ TABLE IT_EKKO INDEX 1.
WK_BSTYP = IT_EKKO-BSTYP.
WK_BSART = IT_EKKO-BSART.
ENDIF.
if wk_bsart = 'ZLR'.
SELECT * FROM EKPO CLIENT SPECIFIED
INTO TABLE IT_EKPO WHERE
MANDT = SY-MANDT AND
EBELN = WK_EBELN AND
LOEKZ NE 'X'.
SORT IT_EKPO BY EBELN EBELP.
IF WK_BSTYP = 'L' AND WK_BSART = 'ZLR'.
SELECT * FROM EKET CLIENT SPECIFIED
INTO TABLE IT_EKET WHERE
MANDT = SY-MANDT AND
EBELN = WK_EBELN.
IF SY-SUBRC EQ 0.
SORT IT_EKET BY EBELN EBELP ETENR.
LOOP AT IT_EKPO.
CLEAR WK_DIFF_QTY.
LOOP AT IT_EKET WHERE EBELN = IT_EKPO-EBELN
AND EBELP = IT_EKPO-EBELP
AND EINDT LE SY-DATUM.
WK_DIFF_QTY = WK_DIFF_QTY + IT_EKET-MENGE - IT_EKET-WEMNG.
ENDLOOP.
IF WK_DIFF_QTY GT 0.
VALUES_TAB-TXZ01 = IT_EKPO-TXZ01.
VALUES_TAB-MENGE = WK_DIFF_QTY.
VALUES_TAB-MATNR = IT_EKPO-MATNR.
APPEND VALUES_TAB.
ENDIF.
ENDLOOP.
ENDIF.
ELSEIF WK_BSTYP = 'F'.
SELECT mseg~mblnr
mseg~mjahr
mseg~zeile
mseg~bwart
mseg~matnr
mseg~ebeln
mseg~ebelp
mkpf~budat
mseg~menge INTO TABLE it_mseg
FROM mkpf INNER JOIN mseg
ON mkpfmblnr EQ msegmblnr
AND mkpfmjahr EQ msegmjahr
FOR ALL entries IN it_ekpo
WHERE bwart IN ('101','122','102')
AND werks = it_ekpo-werks
AND ebeln = it_ekpo-ebeln
AND ebelp = it_ekpo-ebelp.
SELECT * FROM EKET CLIENT SPECIFIED
INTO TABLE IT_EKET
WHERE MANDT = SY-MANDT AND
EBELN = IT_EKPO-EBELN.
LOOP AT IT_EKPO.
CLEAR : WK_DIFF_QTY.
wk_101_qty,
wk_102_qty,
wk_122_qty.
LOOP AT it_mseg WHERE ebeln = it_ekpo-ebeln AND
ebelp = it_ekpo-ebelp.
IF it_mseg-bwart = '101'.
wk_101_qty = wk_101_qty + it_mseg-menge.
ENDIF.
IF it_mseg-bwart = '102'.
wk_102_qty = wk_102_qty + it_mseg-menge.
ENDIF.
IF it_mseg-bwart = '122'.
wk_122_qty = wk_122_qty + it_mseg-menge.
ENDIF.
ENDLOOP.
if not it_mseg[] is initial.
wk_diff_qty = it_ekpo-menge - wk_101_qty
- wk_102_qty - wk_122_qty.
else.
wk_diff_qty = it_ekpo-menge.
endif.
READ TABLE IT_EKET WITH KEY EBELN = IT_EKPO-EBELN
EBELP = IT_EKPO-EBELP.
IF SY-SUBRC EQ 0.
WK_DIFF_QTY = IT_EKPO-MENGE - IT_EKET-WEMNG.
ENDIF.
IF wk_diff_qty LE it_ekpo-menge.
IF WK_DIFF_QTY GT 0.
VALUES_TAB-TXZ01 = IT_EKPO-TXZ01.
VALUES_TAB-MENGE = WK_DIFF_QTY.
VALUES_TAB-MATNR = IT_EKPO-MATNR.
APPEND VALUES_TAB.
ENDIF.
ENDLOOP.
ENDIF.
ELSE.
SELECT TXZ01
MATNR FROM EKPO CLIENT SPECIFIED
INTO CORRESPONDING FIELDS OF TABLE VALUES_TAB
WHERE MANDT = SY-MANDT AND
EBELN = WK_EBELN AND
LOEKZ NE 'X'.
ENDIF.
ELSE.
SELECT TXZ01
MATNR FROM EKPO CLIENT SPECIFIED
INTO CORRESPONDING FIELDS OF TABLE VALUES_TAB
WHERE MANDT = SY-MANDT AND
EBELN = WK_EBELN AND
LOEKZ NE 'X'.
ENDIF.
SORT VALUES_TAB BY TXZ01.
CALL FUNCTION 'F4IF_INT_TABLE_VALUE_REQUEST'
EXPORTING
RETFIELD = 'IT_TC1-ITEMCODE'
DYNPPROG = PROGNAME
DYNPNR = DYNNUM
DYNPROFIELD = 'IT_TC1-ITEMCODE'
VALUE_ORG = 'S'
TABLES
VALUE_TAB = VALUES_TAB
RETURN_TAB = RETURN_TAB
EXCEPTIONS
PARAMETER_ERROR = 1
NO_VALUES_FOUND = 2
OTHERS = 3.
*BREAK-POINT.
IF SY-SUBRC = 0.
READ TABLE RETURN_TAB INDEX 1.
SELECT SINGLE MAKTX FROM MAKT CLIENT SPECIFIED
INTO WK_MAKTX WHERE
MANDT = SY-MANDT AND
MATNR = RETURN_TAB-FIELDVAL AND SPRAS = SY-LANGU.
ENDIF.
ENDMODULE. " ITEM_CODE INPUT
*& Module CHECK_INPUT INPUT
text
MODULE CHECK_INPUT INPUT.
CLEAR : EKKO-EBELN , EKKO-LIFNR.
SELECT SINGLE EBELN LIFNR FROM EKKO CLIENT SPECIFIED
INTO (EKKO-EBELN , EKKO-LIFNR ) WHERE
MANDT = SY-MANDT AND
EBELN = WK_EBELN.
IF SY-SUBRC NE 0 AND ( SY-UNAME = 'GATE1010' OR
SY-UNAME = 'GATE1020' OR
SY-UNAME = 'GATE1030' OR
SY-UNAME = 'GATE1040' OR
SY-UNAME = 'GATE1050' OR
SY-UNAME = 'GATE1060' OR
SY-UNAME = 'GATE1070' OR
SY-UNAME = 'GATE1080' OR SY-UNAME = 'ABAP' ).
IF WK_EBELN NE SPACE.
MESSAGE E003 WITH TEXT-001.
ENDIF.
ELSE.
WK_LIFNR = EKKO-LIFNR.
CLEAR : LFA1-NAME1.
SELECT SINGLE NAME1 FROM LFA1 CLIENT SPECIFIED
INTO LFA1-NAME1 WHERE
MANDT = SY-MANDT AND
LIFNR = WK_LIFNR.
IF SY-SUBRC EQ 0.
WK_NAME = LFA1-NAME1.
ENDIF.
ENDIF.
IF ( SY-UNAME = 'GATE1010' OR SY-UNAME = 'GATE1020' OR
SY-UNAME = 'GATE1030' OR SY-UNAME = 'GATE1040' OR
SY-UNAME = 'GATE1050' OR SY-UNAME = 'GATE1060' OR
SY-UNAME = 'GATE1070' OR SY-UNAME = 'GATE1080' OR SY-UNAME =
'ABAP' ).
IF wk_vbeln IS INITIAL.
set cursor field wk_vbeln.
MESSAGE E003 WITH text-009.
ENDIF.
IF wk_fkdat IS INITIAL.
MESSAGE E003 WITH text-010.
ENDIF.
ENDIF.
IF ( SY-UNAME = 'STORE1010' OR SY-UNAME = 'STORE1020' OR
SY-UNAME = 'STORE1030' OR SY-UNAME = 'STORE1040' OR
SY-UNAME = 'STORE1050' OR SY-UNAME = 'STORE1060' OR
SY-UNAME = 'STORE1070' OR SY-UNAME = 'STORE1080' ).
CLEAR : ZMMT001_GRN_GATE.
SELECT SINGLE EBELN CDATE FROM ZMMT001_GRN_GATE
CLIENT SPECIFIED
INTO (ZMMT001_GRN_GATE-EBELN ,
ZMMT001_GRN_GATE-CDATE )
WHERE MANDT = SY-MANDT AND
SERIAL = WK_SNO AND WERKS = WK_WERKS.
IF SY-SUBRC EQ 0.
SELECT MBLNR
MJAHR
BUDAT
BKTXT FROM MKPF CLIENT SPECIFIED
INTO TABLE IT_TEMP_MKPF
WHERE MANDT = SY-MANDT AND
BUDAT = ZMMT001_GRN_GATE-CDATE
AND BKTXT = WK_SNO.
IFHi,
after calling you programm and get the message call transaction su53. That willl display the authorization that you need.
Hope this helps.
Regards
Bernd -
FWM 01009 (null):firewall problem?
Hi Guys,
I have a problem with a DMZ installation and the firewall settings
Here's the situation.
On our internal network we have installed the servercomponents of BOXI Edge 3.1, which seems to be running fine.
We have a seperate Webserver with Tomcat 5.5 installed on it in the DMZ zone. Via Wdeploy I have deployed the war files on it (according to the wdeploy deploy document).
Whenever I want to logon to the CMC on my webserver machine, my login screen is appearing fine, but after I hit logon, I receive the error message FWM 010009 (null), a communication failure has occured. According to our firewall team, all ports are open in both directions. They have executed a trace and see that the BOXI Edge server is sending back packages, but that in that package should be an end communication order.
I still have (an older) VM with Edge 3.1 behind the firewalls (thus internally), from which I can access my newly installed machine in a glance...
As an extra test we have installed a complet Edge version on the Webserver as well. Communication on the webserver is OK, but as soon as we try to connect to the server behind the firewall, it goes wrong and the error appears.
So here comes my question, is there anyone who can give me a clue where it goes wrong?
Is it correct to say that it is a firewall problem?
If all ports are open on the firewall, communication shouldn't be a problem, isn't it?
Any help is appreciated.
Regards,
JornHi,
we have appointed a static port 4982 to the request port.
According to our firewall guys, no communications is coming from the request port. Even before the request port can answer, the port 6400 is sending a FIN package (termination package) to the application resulting in the error message.
They say that all ports are open and that it's not a firewall problem... However when I communicate within my LAN environment this is not a problem...
Can please someone help me out?
Regards,
Jorn
Edited by: Jornvdd on Sep 29, 2010 12:08 PM -
I have just installed Lion OS and Face Time encounters server problems on sign up. I have sought to rectify the firewall problem without success and even temporarily turned off firewall with no success. Any ideas?
Some folks have discovered that changing their DNS service fixes FaceTime connection issues.
The ideal way is to configure your modem/router with DNS service, but often settings in System Preferences/Network/Advanced/DNS on your Mac will override the router settings. Try either of these;
OpenDNS
208.67.222.222, 208.67.220.220
Google Public DNS
8.8.8.8, 8.8.4.4 -
RMI Marshalling Problem: weblogic.Admin PING
WebLogic 5.1.0 with service pack 8 has been installed on a HPUX server. I'm
trying to ping the server from an NT box, but I'm getting some RMI
marshalling problems.
Here is the command that I run on NT:
C:\weblogic\jre1_2\jre\bin\java -classpath
c:weblogic/lib/weblogic510sp.jar;c:/weblogic/classes;c:/weblogic/lib/weblogi
caux.jar weblogic.Admin t3://HPServer:7001 PING > MarshallingProblem.txt
Here is what is in MarshallingProblem.txt (modified server name):
Failed to connect to t3://HPServer:7001 due to:
[weblogic.rmi.UnexpectedException: Marshalling:
- with nested exception:
[weblogic.rjvm.PeerGoneException:
- with nested exception:
[weblogic.utils.AssertionError: ***** ASSERTION FAILED *****[ Exception
creating response stream ] - with nested exception:
[java.io.InvalidClassException:
weblogic.security.acl.internal.AuthenticatedUser; Local class not
compatible: stream classdesc serialVersionUID=6699361079932480379 local
class serialVersionUID=2825328378974757378]]]]
I previously had similar problems pinging the server from the server itself
until I included the servicepack in the classpath.
Anyone have any idea what going on in this situation?
Cameron TaggartCameron
Can you test with sp8 installed on your NT machine too ? And also make
sure you set the classpath with the sp8 jar files on NT before you run
weblogic.Admin PING
Raj Alagumalai
Cameron Taggart wrote:
WebLogic 5.1.0 with service pack 8 has been installed on a HPUX server. I'm
trying to ping the server from an NT box, but I'm getting some RMI
marshalling problems.
Here is the command that I run on NT:
C:\weblogic\jre1_2\jre\bin\java -classpath
c:weblogic/lib/weblogic510sp.jar;c:/weblogic/classes;c:/weblogic/lib/weblogi
caux.jar weblogic.Admin t3://HPServer:7001 PING > MarshallingProblem.txt
Here is what is in MarshallingProblem.txt (modified server name):
Failed to connect to t3://HPServer:7001 due to:
[weblogic.rmi.UnexpectedException: Marshalling:
- with nested exception:
[weblogic.rjvm.PeerGoneException:
- with nested exception:
[weblogic.utils.AssertionError: ***** ASSERTION FAILED *****[ Exception
creating response stream ] - with nested exception:
[java.io.InvalidClassException:
weblogic.security.acl.internal.AuthenticatedUser; Local class not
compatible: stream classdesc serialVersionUID=6699361079932480379 local
class serialVersionUID=2825328378974757378]]]]
I previously had similar problems pinging the server from the server itself
until I included the servicepack in the classpath.
Anyone have any idea what going on in this situation?
Cameron Taggart -
Home Sharing- alleged firewall problem (-3259)
Hi,
I've had this problem since I first tried to share any content between libraries with iTunes 9. In fact, I noticed the same problem when I was trying to stream content to my Apple TV a couple of weeks ago.
So I have an iMac, MacBook Pro and Airport Extreme (802.11n) Base Station. Both Macs have Snow Leopard installed with iTunes 9. None have any third-party firewall software installed nor do they have the firewall turned on in System Preferences.
Here's the problem: when I try to share content from library to library, it doesn't happen. Specifically, I can initialise a connection between both computers so the other computer's library shows up in the sidebar in iTunes, but that's as far as it gets. When I click on said library, there's a 2 minute wait before the following message is displayed.
"The shared library "Liam's Music" is not responding. (-3259) Check that any firewall software running on either the shared computer or this computer has been set to allow communication on port 3689."
I've tried absolutely everything (including a direct Ethernet connection between both Macs- same error message). Most recently, I even verified port 3689 is open using the Network Activity app. If anybody could help me here, I would really appreciate it. I have so much content I want to share to my family's iPods, etc.
Liam.I am having the same problem. Except I am sharing the library from a D-Link NAS. It worked perfectly before upgrading to iTunes 9. It's not a network or firewall problem. Nothing has changed there. The only change is iTunes 9. Any help is appreciated.
T. -
My New Approach to Homework, and Work-Work
Autumn is upon us and now is the time when the school bell rings in a new year. For parents this means dragging kids out of bed, making lunches that fit Martha Stewart’s standards, and homework. It’s possible that I hate homework more, now as an adult, than I did as a kid. It’s not that I don’t enjoy the time with the kids, but homework can quickly become routine. The kids want to rush through it, I scan over it, offer suggestions for improvements, explain to the complaining child why changes are needed, and then move on to the next assignment. At the end of the evening I wonder if the kids got anything out of the assigned work.
This is why I’m taking a new approach to homework this year.
READ ENTIRE POSTThat's a great idea. You could give them the wrong answer and have them explain to you why it's the wrong answer and what the right answer is.
-
Hi Friends,
I have a problem when runing RMI currently. My java application has RMI server run on a machine called 'amach' and has rmi client run on PC. The application worked well before change of server machine 'amach' (IP: 393.188.0.12)
But it doesn't work after server machine be as two IP address (inside machine IP: 299.177.0.14 and outside call this machine use IP: 166.155.0.12 ).
RMI server is running normally.
It doesn�t work use either of both IP addresses
It shows following message when we run RMI client in IP: 166.155.0.12
java.rmi.ConnectIOException: Exception creating connection to: 166.155.0.12; nested exception is:
java.net.SocketException: Network is unreachable: connect)
It shows following message when we run RMI client in IP: 299.177.0.14
java.rmi.ConnectException: Connection refused to host: 166.155.0.12; nested exception is:
java.net.ConnectException: Connection timed out: connect
at sun.rmi.transport.tcp.TCPEndpoint.newSocket(TCPEndpoint.java:601)
at sun.rmi.transport.tcp.TCPChannel.createConnection(TCPChannel.java:198)
at sun.rmi.transport.tcp.TCPChannel.newConnection(TCPChannel.java:184)
at sun.rmi.server.UnicastRef.invoke(UnicastRef.java:110)
Can you help me to fix this problem?
Many thanks.
HongRMI makes the very dubious assumption that a multi-homed server will have at least one IP address that's accessible to everybody. In your case that would be 166.155.0.12 if I've read your posting right. You should set -Djava.rmi.server.hostname=166.155.0.12 at the server JVM and your RMI clients should do Naming.looking("rmi://166.155.0.12/..."). However it all depends on the validity of the assumption above. If that isn't true you either need to talk to your netadmin or reconsider your configuration.
-
I'm having trouble connecting to my RMI server outside the firewall.
I've read about HTTP tunneling but It's currently not an option since
I can't access the web server being used on port 80.
The concrete problem is this:
I'm trying to connect from IP address 111.111.111.111 inside one firewall to IP address 222.222.222.222(external) 333.333.333.333 (internal) inside another firewall.
I'm able to establish a connection to 222.222.222.222 (even though it takes quite a while to establish it), but once I try to execute a method on the remote object I get:
java.rmi.ConnectException: Connection refused to host: 333.333.333.333;
Can anybody help me with this?I've tried doing that but it doesn't seem to work.
How do I know if I'm using callbacks and how can I be sure I don't use them?
Here's my SocketFactory code:
----server----
java.rmi.server.RMISocketFactory.setSocketFactory(new DemoSocketFactory());
----server----
----DemoSocketFactory---
public class DemoSocketFactory extends java.rmi.server.RMISocketFactory
public DemoSocketFactory() {
public java.net.ServerSocket createServerSocket(int param) throws java.io.IOException
if (param==0)
param=1199;
System.out.println("Creating server socket on port: "+param);
return new java.net.ServerSocket(param);
public java.net.Socket createSocket(java.lang.String str, int param) throws java.io.IOException
System.out.println("Creating client socket to: "+str+":"+param);
return new java.net.Socket(str, param);
----DemoSocketFactory----
Thanks for the help! -
Hello
I want to write a client server application using rmi and eclipse, where many clients are able to register to the server. The server has a string attribute and a client should be able to pass a string object to the server and the server replaces the value of his attribute with the sent string and notifies all registered clients of the new value. In a later step the server writes to a mysql database and notifies the clients about changes in the database, but that is later...
I use eclipse for developing.
Here is the remoteinterface of the server:
package com.iz.rmi.server;
import java.rmi.*;
import java.rmi.server.*;
import com.iz.rmi.client.IObserver;
public interface ISubject extends Remote
public void registerClient(IObserver obs) throws RemoteException, ServerNotActiveException;
public void notifyObervers() throws RemoteException, ServerNotActiveException;
} the remoteinterface of the client:
package com.iz.rmi.client;
import java.rmi.*;
import java.rmi.server.*;
public interface IObserver extends Remote
public void sendNotify(String notification) throws RemoteException, ServerNotActiveException;
}the implementation of the server interface:
package com.iz.rmi.server;
import java.net.MalformedURLException;
import java.rmi.*;
import java.rmi.server.*;
import java.rmi.registry.*;
import java.util.*;
import com.iz.rmi.client.*;
public class Subject extends UnicastRemoteObject implements ISubject
private Vector<IObserver> obs;
private String service;
public Subject() throws java.rmi.RemoteException
super();
this.obs = new Vector<IObserver>();
@Override
public void notifyObervers() throws RemoteException, ServerNotActiveException
Iterator<IObserver> obsIt = this.obs.iterator();
while(obsIt.hasNext())
IObserver o = obsIt.next();
try
o.sendNotify("blabla");
catch (Exception e)
e.printStackTrace();
@Override
public void registerClient(IObserver obs) throws RemoteException, ServerNotActiveException
System.out.println("client registered");
this.obs.add(obs);
public static void main(String[] args)
if (System.getSecurityManager() == null)
System.setSecurityManager(new SecurityManager());
try
String name = "Observable";
ISubject engine = new Subject();
//ISubject stub = (ISubject) UnicastRemoteObject.exportObject(engine, 0);
LocateRegistry.createRegistry(1099);
Registry registry = LocateRegistry.getRegistry(1099);
registry.rebind(name, engine);
System.out.println("ComputeEngine boundlll");
catch (Exception e)
System.err.println("ComputeEngine exception:");
e.printStackTrace();
} and the implementation of the client interface
package com.iz.rmi.client;
import java.rmi.*;
import java.rmi.server.*;
import com.iz.rmi.server.*;
public class Observer extends UnicastRemoteObject implements IObserver
private String host;
private String service;
private ISubject sub;
public Observer(String host, String service) throws RemoteException
this.host = host;
this.service = service;
System.out.println("Service: " + service);
try
this.sub = (ISubject) Naming.lookup(this.service);
this.sub.registerClient(this);
System.out.println(" istered");
catch(Exception e)
System.out.println("Unable to connect and register with subject.");
e.printStackTrace();
@Override
public void sendNotify(String notification) throws RemoteException,
ServerNotActiveException
public static void main(String[] args)
try {
new Observer("192.168.1.34:1099", "Observable");
} catch (RemoteException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}Both programs get started with this vm-argument:
-Djava.security.policy=C:\daten\noSpring\Obsv\wideopen.policy
where wideopen.policy looks like this for testing:
grant {
// Allow everything for now
permission java.security.AllPermission;
};when I start the server all looks fine, but when I start the a client i become just the output.
Service: Observable
isteredinstead of
Service: Observable
client registerd
isteredThere are no exceptions or something like that, but it seems that the registerClient()-method does not get called on the server when the client starts. There were many changes since the last time I used rmi, so I don't know what's wrong here. I hope some one can help me with this problem.
Kind regards,
MichaelThe server's System.out.prints will go to the server's console on the server host.
Not interleaved wih the client's output on the client's console on the client host. -
HI all im really not sure how to fix this error that im having, to be honest im not really sure what i have done wrong, or where im going wrong with pulling information from my interface or and implimentation.
Okies here is all the code
Interface:
public interface RMIServ
extends java.rmi.Remote {
public String PassCheck(String pass, String user)
throws java.rmi.RemoteException;
Implimentation:
public class RMIServImpl
extends
java.rmi.server.UnicastRemoteObject
implements RMIServ {
// Implementations must have an
//explicit constructor
// in order to declare the
//RemoteException exception
public RMIServImpl()
throws java.rmi.RemoteException {
super();
public String PassCheck(String pass, String user)//takes the user and switch number
throws java.rmi.RemoteException {
String result;
int password = Integer.parseInt(pass);//converts the string to an int
int info = Integer.parseInt(user);//converts the string to an int
if (password==72)//checks password
switch(info) //start switch.
case 1: result="Hello my name is Gareth Gates.";break;
case 2: result= "My student number is 0302814.";break;
case 3: result= "I am Taking Computer Science and Robotics.";break;
case 4: result= "This semester i am taking 4 units, this is one.";break;
case 5: result= "my project is on server times.";break;
case 6: result= "i live in luton during the week.";break;
case 7: result= "i work in a garden centre.";break;
case 8: result= "please let me know what you think of my server.";break;
case 9: result= "Email: [email protected]";break;
case 10: result= "Email me any time, thanks.";break;
default : result= "You entered a number bigger then 10 please try again.";break;
} //end switch.
return result; //sends string back to client.
else
return result= "You entered the wrong password";//send back an error
Server:
import java.rmi.Naming;
public class RMIServServer {
public RMIServServer() {
try {
RMIServ c = new RMIServImpl();
Naming.rebind("rmi://localhost:1099/RMIServService", c);
} catch (Exception e) {
System.out.println("Trouble: " + e);
public static void main(String args[]) {
new RMIServServer();
Client:
import java.rmi.Naming;
import java.rmi.RemoteException;
import java.net.MalformedURLException;
import java.rmi.NotBoundException;
import javax.swing.*;
public class RMIServClient {
public static void main(String[] args) {
try {
RMIServ c = (RMIServ)
Naming.lookup("rmi://localhost/RMIServService");
String password = JOptionPane.showInputDialog("Please enter your password");
if (password == c.PassCheck(pass)){
JOptionPane.showMessageDialog(null, "Password Correct");
catch (MalformedURLException murle) {
System.out.println();
System.out.println(
"MalformedURLException");
System.out.println(murle);
catch (RemoteException re) {
System.out.println();
System.out.println(
"RemoteException");
System.out.println(re);
catch (NotBoundException nbe) {
System.out.println();
System.out.println(
"NotBoundException");
System.out.println(nbe);
catch (
java.lang.ArithmeticException
ae) {
System.out.println();
System.out.println(
"java.lang.ArithmeticException");
System.out.println(ae);
Any light that you could shed on my problem would be much appreciated, thanks for the help in advance
the bold is where my problem lies
Joe de Ronde
Message was edited by:
joederondetry
String password = JOptionPane
.showInputDialog("Please enter your password");
if (password == c.PassCheck(password, "username")) {
JOptionPane.showMessageDialog(null, "Password Correct");
}Also your implementation is wrong, you better take a look at some examples (like the java tutorial, including the rmi tutorial, or if you're using eclipse there are some working ready to use examples in the rmi plugin for eclipse (google it). -
Java.rmi.NoSuchObjectException problems
Hello,
After calling home.create() in my code, passing in primary key and
additional column data, when I call home.findByPrimaryKey (primkey)
followed by a call to one of the methods in the bean, I immediately get
a a java.rmi.NoSuchObjectException.
An exception is not thrown when calling home.findByPrimaryKey (primkey)
so it is safe to assume that a reference has been obtained to the bean
with the data I am looking for, correct? If so, why am I getting this
exception:
java.rmi.NoSuchObjectException: Bean with primary key: 'Pat Hardy' not
found in
home: 'Student'
at
weblogic.ejb.internal.EntityEJBContext.load(EntityEJBContext.java:153
at
weblogic.ejb.internal.EntityEJBContext.afterBegin(EntityEJBContext.ja
va:212)
at
weblogic.ejb.internal.StatefulEJBObject.getContextForInvoke(StatefulE
JBObject.java:162)
etc.
etc.
etc.
Any ideas of what I might be doing wrong?
Thanks for your help in advance.We had a similar problem, although I don't know if it was the same
thing. We are using WL 5.1, sp5, with Oracle 8.1.6.
I have a stateless session bean, which had a transactional attribute
of 'Supports'. It would call an entity bean with transactional attribute
of 'RequiresNew' for all methods. The session bean would do a finder
on the entity bean, and if it got an ObjectNotFoundException, it would
then create the entity bean with a call to home.create(id). Then, it would
call a business method on the entity bean.
For some reason, in the case where the session bean is called from within
a thread that already had a transaction started, the call to the entity
bean business method would hang, if an only if it had to create a new
bean first. If the finder of the bean succeeded, there would be no hang.
Sometimes, instead of hanging, it would return a NoSuchObjectException.
If the stateless bean were called outside of a transaction, would always
succeed, regardless.
So, my fix, was to set the transactional attribute for the stateless bean to
'NotSupported' for all methods. It now seems to work in all cases,
no more hangs or NoSuchObjectExceptions....
Is this expected behavior? Is this related to the same problem?
The BEA recomendations to use READ-COMMITTED are useless for
the case where you are running a clustered environment, and where you
need to have the bean deployed on all servers in the cluster for
fail-over reliability.....
Jason
"Korey Shronts" <[email protected]> wrote in message
news:[email protected]...
I dont' know about the mapping to CHAR but we've managed to fix our nosuch
object problem.
BEA sent me this snippet:
The bug is as follows
In Oracle (8.0.5), if there is a primary key constraint AND you use an
isolation
level of SERIALIZABLE, an insert followed by an update in the same
transaction
fails. Specifically, the insert succeeds (to all outward indications),
but the update fails (the returned count is 0) after some number of
iterations.
What's the workaround? If the customer is not sharing the database with
any
other app or running it under a cluster, tell them to set the isolation
level to
read_committed. Serializable only slows them down without any added
benefit.
If clustering is on, and serializable behavior is deemed essential for
this
particular bean, maybe they can deploy the bean on only one of the
servers
to reduce it to the case above.
I set the isolation level on our beans to read_commited. Fixed theproblem
although we're using Oracle 8i not 8.0.5.
<[email protected]> wrote in message
news:[email protected]...
Well, it appears, that you cannot map a java.lang.String to a CHAR inOracle.
A java.lang.String can be mapped to a VARCHAR2.
Is this a bug?
[email protected] wrote:
I just install WebLogic server 5.1.0 and SP5 on a new machine.
Still have the same problems.
Will keep you posted.
Korey Shronts wrote:
We're having the same problem. I've opened a case with BEA but
haven't
heard anything yet. If you find the solution let me know!
[email protected]
<[email protected]> wrote in message
news:[email protected]...
I accidently omitted the first line in the exception. Sorry aboutthat.
Here it is again from the beginning:
Thu Sep 21 08:52:12 EDT 2000:<I> <EJB JAR deploymentC:/wlogic/lib/S.jar>
Transa
ction: '969540638993_1' rolled back due to EJB exception:
java.rmi.NoSuchObjectException: Bean with primary key: 'Pat Hardy'not
found in
home: 'Student'
at
weblogic.ejb.internal.EntityEJBContext.load(EntityEJBContext.java:153
at
weblogic.ejb.internal.EntityEJBContext.afterBegin(EntityEJBContext.ja
va:212)
at
weblogic.ejb.internal.StatefulEJBObject.getContextForInvoke(StatefulE
JBObject.java:162)
etc.
etc.
etc.
Any ideas of what I might be doing wrong?
Thanks for your help in advance.
[email protected] wrote:
Hello,
After calling home.create() in my code, passing in primary key
and
additional column data, when I call home.findByPrimaryKey(primkey)
followed by a call to one of the methods in the bean, Iimmediately get
a a java.rmi.NoSuchObjectException.
An exception is not thrown when calling home.findByPrimaryKey(primkey)
so it is safe to assume that a reference has been obtained to
the
bean
with the data I am looking for, correct? If so, why am I gettingthis
exception:
java.rmi.NoSuchObjectException: Bean with primary key: 'Pat
Hardy'
not
found in
home: 'Student'
at
weblogic.ejb.internal.EntityEJBContext.load(EntityEJBContext.java:153
at
weblogic.ejb.internal.EntityEJBContext.afterBegin(EntityEJBContext.ja
va:212)
at
weblogic.ejb.internal.StatefulEJBObject.getContextForInvoke(StatefulE
JBObject.java:162)
etc.
etc.
etc.
Any ideas of what I might be doing wrong?
Thanks for your help in advance. -
Firewall problem when encrypting/decryting a file
Hi,
I'm a little bit new to cryptography.
When I encrypt a file using the javax.crypto classes, my firewall pops up and says "java.exe is attempting to connect to a DNS Server".
If I block the firewall, nothing else happens and the file gets encrypted as well. But I don't want to insecure all my customers having this firewall alerts.
Can anyone help me to stop that ? Thanks in advance,
- fridi -
This is the example code I am using:
import java.io.FileInputStream;
import java.io.FileOutputStream;
import java.security.GeneralSecurityException;
import javax.crypto.Cipher;
import javax.crypto.CipherInputStream;
import javax.crypto.SecretKey;
import javax.crypto.SecretKeyFactory;
import javax.crypto.spec.DESedeKeySpec;
public class TestCrypt {
public static void main(String[] args) throws Exception, GeneralSecurityException {
String inFilename = args[0];
String outFilename = args[1];
byte[] keyArray = "My one and only key blablabalbal".getBytes();
DESedeKeySpec desedeKeySpec = new DESedeKeySpec(keyArray);
SecretKeyFactory keyFactory = SecretKeyFactory.getInstance("DESede");
SecretKey key = keyFactory.generateSecret(desedeKeySpec);
Cipher cip = Cipher.getInstance("DESede");
cip.init(Cipher.ENCRYPT_MODE, key);
FileInputStream fis = new FileInputStream(inFilename);
CipherInputStream cis = new CipherInputStream(fis, cip);
FileOutputStream fos = new FileOutputStream(outFilename);
byte[] b = new byte[1024];
int i = cis.read(b);
while (i != -1) {
fos.write(b, 0, i);
i = cis.read(b);
fos.close();
cis.close();
}What version of Windows are you using, and what kind of security-related software are you running on the PC? Have you tried executing your code on a Linux/UNIX machine? It is highly unlikely that you'll see the problem on that platform - but if you do, there are tools where you can trace the execution of the JVM and filter it for name-service API calls to see where it is being initiated from.
I would still bet that some software on your PC is causing the outbound call.
Maybe you are looking for
-
How can I include CDATA in the node-value?
Hi Experts, Via XI I map an incoming mail message to an outgoing XML. To be sure to not run into problems, I want to put <![CDATA[ and ]]> around the node-values. Currently, I just do this in my message-mapping via a concatenate. The result LOOKS fin
-
Photomerge: no final image
I am running CS5 and CS4 on a mac OS X 10.6.7 with 147Gb of available memory. Photomerge crashes even trying a 2 picture panorama, so I don't think it is a memory issue, and it happens with both CS5 and CS4. The whole application does not crash, it's
-
How do I change security settings on items in Startup items folder in Library
I just installed pro tools TEN on my Mac OS X 10.6.8 -When I log in I get a pop up message that says items in the startup items folder in library won't open because of incorrect security settings. Now it has given me separate pop up windows saying
-
My Zen Sleek froze..
So I used it yesterday and it was fine...except the horrible sound quality im guessing its the earphones. anyways i turn it on this morning and it gets to the "zen sleek" screen and it just stayed there! its been about an hour now and its still at th
-
Soundblaster 5.1 live 24 bit - Woofer+center probl
hi guys i just bought a sound blaster li've 24 bit sound card, and i can`t make it sound good on my Philips 5. sound system the problem i have is with the woofer, i mean i can`t controll the sound that comes out of it at all and it is not linked with