Formatting a msg ..
Hi
CREATE OR REPLACE PROCEDURE send_email AS
BEGIN
UTL_MAIL.SEND(sender => '[email protected]',
recipients => '[email protected]',
cc => NULL,
bcc => NULL,
subject => 'Testmail',
message => 'my message' );
EXCEPTION
WHEN OTHERS THEN
raise_application_error(-20001,'The following error has occured: ' || sqlerrm);
END;In the message parameter i want it to contain customer's executions in the stock market at the end of the day to be sent to them by mail in a nice format , like for example :
stock name --- invoice value
xxxx 100,000
yyyy 2,300of course each customer can have many invoices each day , so ...
1- what concept can i use to do that ? like create a string that has the data separated by commas ? , or a cursor or what?
2- Is there any formatting options in this parameter like putting each invoice in a new line , of course i can use commas , but i was just asking if this can be done in a neat way...
Thanks....
One way you can LPAD with spaces.
number formatting by to_char(num1, '999,999,999')
Similar Messages
-
.msg file format of outlook
Hello,
I'm looking for a solution to convert an e-mail from .eml format, to .msg file format. This format belong to outlook, and that's why it's very difficult to find informations.
So, does anabody could give me information about .msg file format ?
thank you so much
TizzyActually, the outlook msg file format has nothing to do with RFC822. I wrote a library in pure java that will allow you to read/write this file format via the POI framework from the Apache Foundation.
travis (at) overwrittenstack.com -
Format XML doc based on values in another xml doc
Database version : Oracle 10g
I have an XML "data" file and an associated error file that is also XML. I want to take the XML data file and highlight visually in a html file only those fields and contents that are there in the "error" file.
There are many fields in the data file so the error could be just about anywhere. Can someone please tell me what I should read or give me some direction on how I should proceed?
I built a style sheet for the "data" file - but obviously that is static. Do i need 2 stylesheets and apply them both somehow? I was also thinking that I would use the "error" xml doc and just rewrite the error nodes in the "data" file and then use the style sheet to mark up the data file based on what i rewrite.
eg
if the data is say
<field1>content of field 1</field1>
and the error file has field1 in it, I would rewrite the data file to have say <error>content of field 1</error> and just mark up the <error> using the stylesheet. Is that a sensible solution? Even then I need help on the actual xml/sql functions i need to rewrite the xml data.
I am a rank beginner in this and I apologize - This seems such a newbie question that must have been asked before - I just wish I could find it in the forum.
Thank you!
Edited by: user13112667 on Oct 15, 2010 12:38 PMThanks for the samples.
A couple of options I can think of :
- XSL transformation (as you first thought of too)
- XQuery
Below is a test script that implements both solutions :
DECLARE
datadoc xmltype := xmltype(
'<HII>
<HII_SEQ_NUM>6084997</HII_SEQ_NUM>
<HII_RECORD_ID>HII</HII_RECORD_ID>
<HII_DOC_TYPE>INV</HII_DOC_TYPE>
<HII_WSLR_ID>XXXXX</HII_WSLR_ID>
<HII_WSLR_ABBR>COM</HII_WSLR_ABBR>
<HII_CUST_NBR>096636</HII_CUST_NBR>
<HII_INV_DATE>100203</HII_INV_DATE>
<HII_INV_NUMB>829608-1102</HII_INV_NUMB>
<HII_ORD_NUMB>830412</HII_ORD_NUMB>
<HII_TP_ID>007839602</HII_TP_ID>
<HII_WSLR_DUNS>000073669</HII_WSLR_DUNS>
<HII_TRANS_TYPE>DI</HII_TRANS_TYPE>
<HII_CAVN_ID>77873</HII_CAVN_ID>
<HII_VER_NUM>22</HII_VER_NUM>
</HII>'
errordoc xmltype := xmltype(
'<document>
<error>
<segment>HII</segment>
<element>HII_INV_DATE(Inv Date)</element>
<msg>Invoice date must be in the format yyyymmdd</msg>
<data>100203</data>
</error>
<error>
<segment>HII</segment>
<element>HII_TP_ID(TP ID)</element>
<msg>Data must be 12 digits long</msg>
<data>007839602</data>
</error>
</document>'
xsldoc xmltype := xmltype(
'<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform" version="1.0">
<xsl:output method="html" version="4.0"/>
<xsl:template match="/">
<HTML>
<BODY>
<STYLE type="text/css">
<![CDATA[
TR.err { background-color: red }
TD { border: 1px solid }
TABLE { border-collapse: collapse }
]]>
</STYLE>
<TABLE>
<xsl:apply-templates select="root/datafile/HII/*"/>
</TABLE>
</BODY>
</HTML>
</xsl:template>
<xsl:template match="HII/*">
<xsl:variable name="msg" select="/root/errorfile/document/error[segment=name(current()/..) and substring-before(element,''('')=name(current())]/msg"/>
<TR>
<xsl:if test="$msg"><xsl:attribute name="class">err</xsl:attribute></xsl:if>
<TD><xsl:value-of select="name(.)"/></TD>
<TD><xsl:value-of select="."/></TD>
<TD><xsl:value-of select="$msg"/></TD>
</TR>
</xsl:template>
</xsl:stylesheet>'
html_res1 clob;
html_res2 clob;
BEGIN
-- XSL Transformation
SELECT XMLTransform(
xmlelement("root",
xmlconcat( xmlelement("datafile",datadoc),
xmlelement("errorfile",errordoc) )
xsldoc
).getClobVal()
INTO html_res1
FROM dual;
-- XQuery
SELECT XMLQuery(
'<HTML>
<BODY>
<STYLE type="text/css">
TR.err {{ background-color: red }}
TD {{ border: 1px solid }}
TABLE {{ border-collapse: collapse }}
</STYLE>
<TABLE>
for $i in $d/HII/*
let $n := name($i)
let $v := $i/text()
let $msg := xs:string($e/document/error[segment=name($i/..) and substring-before(element,"(")=$n]/msg)
return
element TR {
if ($msg) then
attribute class {"err"}
else (),
<TD>{$n}</TD>,
<TD>{$v}</TD>,
<TD>{ $msg }</TD>
</TABLE>
</BODY>
</HTML>'
passing datadoc as "d",
errordoc as "e"
returning content
).getClobVal()
INTO html_res2
FROM dual;
END;
/Same principle for the two methods : looping through the data document and searching for a matching occurrence in the error document using XPath.
It produces an HTML document (html_res1 and html_res2) like this :
<HTML>
<BODY>
<STYLE type="text/css">
TR.err { background-color: red }
TD { border: 1px solid }
TABLE { border-collapse: collapse }
</STYLE>
<TABLE>
<TR>
<TD>HII_SEQ_NUM</TD>
<TD>6084997</TD>
<TD></TD>
</TR>
<TR>
<TD>HII_RECORD_ID</TD>
<TD>HII</TD>
<TD></TD>
</TR>
<TR>
<TD>HII_DOC_TYPE</TD>
<TD>INV</TD>
<TD></TD>
</TR>
<TR>
<TD>HII_WSLR_ID</TD>
<TD>XXXXX</TD>
<TD></TD>
</TR>
<TR>
<TD>HII_WSLR_ABBR</TD>
<TD>COM</TD>
<TD></TD>
</TR>
<TR>
<TD>HII_CUST_NBR</TD>
<TD>096636</TD>
<TD></TD>
</TR>
<TR class="err">
<TD>HII_INV_DATE</TD>
<TD>100203</TD>
<TD>Invoice date must be in the format yyyymmdd</TD>
</TR>
<TR>
<TD>HII_INV_NUMB</TD>
<TD>829608-1102</TD>
<TD></TD>
</TR>
<TR>
<TD>HII_ORD_NUMB</TD>
<TD>830412</TD>
<TD></TD>
</TR>
<TR class="err">
<TD>HII_TP_ID</TD>
<TD>007839602</TD>
<TD>Data must be 12 digits long</TD>
</TR>
<TR>
<TD>HII_WSLR_DUNS</TD>
<TD>000073669</TD>
<TD></TD>
</TR>
<TR>
<TD>HII_TRANS_TYPE</TD>
<TD>DI</TD>
<TD></TD>
</TR>
<TR>
<TD>HII_CAVN_ID</TD>
<TD>77873</TD>
<TD></TD>
</TR>
<TR>
<TD>HII_VER_NUM</TD>
<TD>22</TD>
<TD></TD>
</TR>
</TABLE>
</BODY>
</HTML>Performance-wise, you'll have to test on real documents, but I think XSLT is better. -
The hybrid format email is considered as a junk email (or spam)in Apple Mail 4.4
In Mac OSX 10.6.6, When I use Apple Mail 4.4 to receive the hybrid format email( include HTML and Text format in one email), the Apple Mail 4.4 will be think this email is a junk email.
Is this a bug for the Mail 4.4? Anybody can help to resolve this issue?
FYI, The following is my JAVA code for how to send a hybrid format email:
msg.setSubject("test");//set subject
MimeBodyPart mbp1 = new MimeBodyPart();
mbp1.setContent("test", "text/plain; charset=utf-8");//set text format content
MimeBodyPart mbp2 = new MimeBodyPart();
mbp2.setContent("test", "text/html; charset=utf-8");//set HTML format content
Multipart mp = new MimeMultipart("alternative");
mp.addBodyPart(mbp1);//add text content
mp.addBodyPart(mbp2);//add HTML content
msg.setContent(mp);
Transport.send(msg);//send emailSorry to be slow to respond -- had a doctor appointment, and also had to hunt up a boot volume with 10.6.6 and Mail 4.4 on it, just to be sure.
Your test message was not perceived as SPAM/Junk at all. Not when received in Mail 4.5, Mail 4.4, nor Mail 2.1.3 in Tiger.
Nothing about the Long Headers indicated anything suspicious. The headers I was looking primarily at are pasted below, and do reveal anything private. These the result of the filters on my incoming server:
X_Cmae_Category: 0,0 Undefined,Undefined
X-Cnfs-Analysis: v=1.1 cv=JQNK39t9F4kLyjfJz/k8C0DfBhSrK9xA1Y4SBRwEmYU= c=1 sm=0 a=BLceEmwcHowA:10 a=1FzqG5ILVBdwvA7Y_sMA:9 a=QEXdDO2ut3YA:10 a=qIwwZl7lo8ZhrKw95CmXbg==:117
X-Cm-Score: 0
X-Scanned-By: Cloudmark Authority Engine
Authentication-Results: mx01.insight.synacor.com header.from=[email protected]; sender-id=neutral
Authentication-Results: mx01.insight.synacor.com smtp.mail=[email protected]; spf=neutral; sender-id=neutral
Received-Spf: neutral (mx01.insight.synacor.com: 74.128.0.95 is neither permitted nor denied by domain of zone1.dev.hf.webex.com)
X-Ironport-Anti-Spam-Filtered: true
X-Ironport-Anti-Spam-Result: As0IAEyBx009vxsiTmdsb2JhbACEUqE6AQEiSYhqqnGPfoUKgQIEhj6NTx2KJQ
X-Ironport-Av: E=Sophos;i="4.64,338,1301889600"; d="scan'208";a="381038056"
X-Connecting-Ip: 61.191.27.34
Message-Id: <27817788.01304920419178.JavaMail.Ma.Jin@majin-work>
Mime-Version: 1.0
Content-Type: multipart/alternative; boundary="----=_Part_0_24435002.1304920419147" -
CVI 2009 vs. 2010: compatibil​ity to Excel
Hello all,
I have created an application in CVI2009SP1 that exports its data to an Excel file using Excel2000 instrument driver shipped with CVI. All works well if the application is compiled and run on a WinXP machine but when run on a Win7 machine the customer complains to receive a strange error while opening the generated files:
The message basically means "The format of the file you want to open does not correspond to the type declared in its extension"
Pressing Ok will open the file regularly but I wonder what this error means and how to put it away.
I tested this situation in Excel 2007 and 2010, both starter and full edition: despite the error the files open regularly. On the other hand, the generated file cannot be opened in Word2000 due to a more severe "format not recognized" error.
I tried compiling the executable in CVI 2010 and I receive no error even if the Excel instrument is still declared as "Microsoft Excel 9.0 object library" the same as it is in 2009; nevertheless the object file associated to the instrument is newer than the 2009 version (June 30, 2010 for the library shipped with CVI2009; June 22, 2011 for the 2010 one).
I would prefer not to distribute a release compiled in 2010 as the application drives a high power equipment for research on prototypes and I cannot test it in real environment, so I tried simply to substitute CVI2009 version of the Excel interface library with the CVI2010 one and the program compiles and executes without errors.
So questions are:
Q1. Any clue as to what that error means?
Q2. Is it safe to upgrade the Excel library in CVI2009?
Q3. Any possibility to maintain compatibility to older versions of Excel?
Proud to use LW/CVI from 3.1 on.
My contributions to the Developer Zone Community
If I have helped you, why not giving me a kudos?Hi,
I diffed the source codes and they are effectively identical, while the libraries are slightly different in size (some 10 bytes) and creation date. I don't know if checking the object for differences makes sense. I haven't modified that instrument in any way.
I'll try to send to the customer a program release compiled in CVI2009 with 2010 library and see what happens: unfortunately I don't have in my office the exact copy of the target machine (Win7Pro + Office2010) to check it on.
To write the file I use the following:
errChk (CA_VariantSetCString(&MyVariant, <file pathname>));
errChk (Excel_WorkbookSaveAs (ExcelWorkbookHandle, NULL, MyVariant,
CA_DEFAULT_VAL, CA_DEFAULT_VAL,
CA_DEFAULT_VAL, CA_DEFAULT_VAL,
CA_DEFAULT_VAL, ExcelConst_xlNoChange,
CA_DEFAULT_VAL, CA_DEFAULT_VAL,
CA_DEFAULT_VAL, CA_DEFAULT_VAL));
While examining my code now I noted something I didn't remember: when moving data to Excel I try to get the decimal point formatting code used in the system and apply it to the data in Excel worksheet, using this code:
// Read decimal separator from the registry
strcpy (msg, "Control Panel");
MakePathname (msg, "International", msg);
RegReadString (REGKEY_HKCU, msg, "sDecimal", a, 512, &i);
// Select some columns to format
sprintf (msg, "D2:H%d", cnt + 1);
errChk (CA_VariantSetCString (&MyVariant, msg));
if (ExcelRangeHandle) errChk (ClearObjHandle (&ExcelRangeHandle));
errChk (Excel_WorksheetRange (ExcelWorksheetHandle, NULL, MyVariant, CA_DEFAULT_VAL, &ExcelRangeHandle));
errChk (Excel_RangeActivate (ExcelRangeHandle, &ErrorInfo, NULL));
// Apply the proper format
sprintf (msg, "#0%s0", a);
errChk (CA_VariantSetCString (&MyVariant, msg));
errChk (Excel_SetProperty (ExcelRangeHandle, &ErrorInfo, Excel_RangeNumberFormat, CAVT_VARIANT, MyVariant));
I wonder if this code can cause any problem when executed on a Win7 machine?
Coming to your last question, I am using excel2000 instrument driver with the code above. Situation is as follows:
- When execute on a WinXPPro machine with Excel2000 I can create files without problems. Files created can be viewed in Excel2007 full and Excel 2010 starter without errors nor warnings
- Files created by the application running in a Win7 box can be opened in Excel 2010 with the warning I posted. They can't be opened in Excel2000: I receive the error "This file is not in a recognizable format" and if I follow on I see binary code in the worksheet
Proud to use LW/CVI from 3.1 on.
My contributions to the Developer Zone Community
If I have helped you, why not giving me a kudos? -
Hi ,
I want to call transaction FB65 for the company code , vendor , amount and GL_account.
Is there any BAPI which i can use for this purpose.
Thanks in advance.sample code using RFBIBL00
TABLES : BGR00, " Batch Input Structure for Session Data
BBKPF, " Doc Hdr for Accntng Doc (Batch Input Structure)
BBSEG, " Accounting Document Segment (Batch Input Structure)
USR01.
Internal Table and structure Declarations *
Internal table to hold input file data
DATA:BEGIN OF IT_INFILE OCCURS 0.
INCLUDE STRUCTURE Z0FI_AP_FADS_TO_SAP. "Input file format
DATA:ERROR(1) TYPE C, "error indicator
END OF IT_INFILE.
Internal table to hold input file data
DATA:BEGIN OF IT_ERRORS OCCURS 0.
INCLUDE STRUCTURE Z0FI_AP_FADS_TO_SAP. "Input file format
DATA: MSG(200) TYPE C, "message
END OF IT_ERRORS.
Internal table to hold GL data
DATA:BEGIN OF IT_GL OCCURS 0,
SAP_GL_ACCOUNT LIKE ZFGLT_GL_PRI_SUB-SAP_GL_ACCOUNT, "G/L Account
LGCY_SYSTEM LIKE ZFGLT_GL_PRI_SUB-LGCY_SYSTEM, "Legacy System
LGCY_PRIME_ACCT LIKE ZFGLT_GL_PRI_SUB-LGCY_PRIME_ACCT,"Legacy Account
LGCY_SUB_ACCT LIKE ZFGLT_GL_PRI_SUB-LGCY_SUB_ACCT, "Legacy Sub Acct
END OF IT_GL.
Internal table to hold cost center data
DATA:BEGIN OF IT_COSTCTR OCCURS 0,
COST_OBJECT LIKE ZFCFT_CTR_DPT_LG-COST_OBJECT, "Cost center
LGCY_LDGR LIKE ZFCFT_CTR_DPT_LG-LGCY_LDGR, "Legacy ledger
LGCY_DEPT LIKE ZFCFT_CTR_DPT_LG-LGCY_DEPT, "Legacy Department
END OF IT_COSTCTR.
Internal table to hold vendor data
DATA:BEGIN OF IT_LFA1 OCCURS 0,
LIFNR TYPE LIFNR, "Vendor no
BUKRS TYPE BUKRS, "Company code
STCD1 TYPE STCD1, "Tax ID1
STCD2 TYPE STCD2, "Tax ID2
END OF IT_LFA1.
Internal table to hold Primary Sub Acct data
DATA:BEGIN OF IT_SUBACCT OCCURS 0,
PRYACT1(10) TYPE C, "Pry sub Acct1
PRYACT2(10) TYPE C, "Pry sub Acct2
END OF IT_SUBACCT.
Internal table to hold ledger data
DATA:BEGIN OF IT_LEDGER OCCURS 0,
LGR_ID(4) TYPE C, "Ledger ID
DEPT(4) TYPE C, "Department
END OF IT_LEDGER.
Internal table to hold tax id
DATA:BEGIN OF IT_TAXID OCCURS 0,
TAXID1(16) TYPE C, "Tax ID1
TAXID2(11) TYPE C, "Tax ID2
END OF IT_TAXID.
Internal table to hold line amounts sum data
DATA:BEGIN OF IT_SUM OCCURS 0,
TAX_ID_NO(10) TYPE C, "Tax Id No
INVOICE_NO(12) TYPE C, "Invoice No
SUM2(11) TYPE P DECIMALS 2, "Sum
END OF IT_SUM.
Internal table to hold Error records
DATA:BEGIN OF IT_ERROR OCCURS 0,
TAX_ID_NO(10) TYPE C, "Tax Id No
INVOICE_NO(12) TYPE C, "Invoice No
MSG(200) TYPE C, "Message
END OF IT_ERROR .
Internal table to hold success records
DATA : BEGIN OF IT_SUCCESS OCCURS 0,
DOCNUM(10) TYPE C, "Document No
BUKRS(4) TYPE C, "Company code
FISYR(4) TYPE C, "Fiscal year
MSG(100) TYPE C, "Message
END OF IT_SUCCESS.
Internal table to hold invoice no
DATA:BEGIN OF IT_INVNO OCCURS 0,
XBLNR(16) TYPE C, "Ref Doc No
END OF IT_INVNO.
Internal table to hold Invoice Document no's
DATA:BEGIN OF IT_BKPF OCCURS 0,
BUKRS LIKE BKPF-BUKRS,
BELNR LIKE BKPF-BELNR,
XBLNR LIKE BKPF-XBLNR,
END OF IT_BKPF.
Internal table to initialise structures
DATA: BEGIN OF IT_NAMETAB OCCURS 120.
INCLUDE STRUCTURE DNTAB.
DATA: END OF IT_NAMETAB.
Internal table to hold sessions data
DATA:BEGIN OF IT_LIST OCCURS 0.
INCLUDE STRUCTURE ABAPLIST.
DATA:END OF IT_LIST.
Structure to hold input file
DATA:X_INFILE LIKE IT_INFILE.
Structure to hold company code & currency data
DATA:BEGIN OF X_T001,
BUKRS LIKE T001-BUKRS, "Company code
WAERS LIKE T001-WAERS, "Currency
END OF X_T001.
Global Variables *
DATA: V_PGM_ID LIKE SY-REPID, "Program id
V_COUNT_INFILE TYPE I, "Counter
V_TEXT(100) TYPE C, "Text
V_CHAR(61) TYPE C, "Field name
V_FILE LIKE RLGRAP-FILENAME. "File name
DATA:
V_ERR TYPE I, "Counter
V_OBJKEY LIKE BAPIACHE09-OBJ_KEY, "object key
V_ERR_REC TYPE I, "Error Records
V_SUC_REC TYPE I, "Success Records
V_SESS LIKE APQI-GROUPID. "Session name
Field symbols
FIELD-SYMBOLS: <F1> .
Constants. *
DATA:
C_ITEMNO(6) TYPE C VALUE '000001', "Item no
C_DOCTYPE(2) TYPE C VALUE 'KU', "Doc type
C_BUSACT(4) TYPE C VALUE 'RMRP', "Business Account
C_FADS(7) TYPE C VALUE 'FADS', "Legacy system
C_COMMA(1) TYPE C VALUE ',' , "Comma
C_NODATA(1) TYPE C VALUE '/', "NODATA
C_SESS LIKE APQI-GROUPID VALUE 'FADS2SAP'."Session
Selection Screen
SELECTION-SCREEN: BEGIN OF BLOCK NO1 WITH FRAME TITLE TEXT-001.
*Input file name
PARAMETERS:P_BUKRS LIKE T001-BUKRS OBLIGATORY,
P_INFILE LIKE RLGRAP-FILENAME LOWER CASE DEFAULT
'C:\FB60.txt' OBLIGATORY,
*Filename for Error records
P_ERR LIKE RLGRAP-FILENAME LOWER CASE DEFAULT
'/int/D01/030/in/REQ853err.txt' OBLIGATORY.
*For selecting either a sequential file or local file.
PARAMETERS:
R_PSERV RADIOBUTTON GROUP GR1 DEFAULT 'X',
R_ASERV RADIOBUTTON GROUP GR1.
SELECTION-SCREEN: END OF BLOCK NO1.
INITIALIZATION
INITIALIZATION.
V_PGM_ID = SY-REPID.
AT SELECTION-SCREEN *
AT SELECTION-SCREEN.
Validating company code
SELECT SINGLE BUKRS
WAERS INTO (X_T001-BUKRS, X_T001-WAERS)
FROM T001 WHERE BUKRS = P_BUKRS.
IF SY-SUBRC <> 0.
MESSAGE E014 WITH 'Invalid Company code'(E01).
ENDIF.
AT SELECTION-SCREEN ON VALUE-REQUEST FOR P_INFILE.
Getting help for presentation server files
IF R_PSERV = 'X'.
CALL FUNCTION 'F4_FILENAME'
EXPORTING
PROGRAM_NAME = V_PGM_ID
DYNPRO_NUMBER = SY-DYNNR
FIELD_NAME = ' '
IMPORTING
FILE_NAME = P_INFILE.
ENDIF.
START-OF-SELECTION *
START-OF-SELECTION.
If sequential file is selected
IF R_ASERV = 'X'.
Form to get data for apllication server
PERFORM F_GET_INPUT_DATA.
if local file
ELSE.
If sequential file is selected
PERFORM F_GET_LOCAL_DATA.
ENDIF.
Selecting GL, Costcenter, vendor data
PERFORM F_SELECT_DATA.
Validate the the input file data
PERFORM F_VALIDATE_DATA.
Populate data to fill structures
PERFORM F_POPULATE_DATA.
Populate the error data
PERFORM F_ERROR_DATA.
END-OF-SELECTION
END-OF-SELECTION.
IF NOT IT_INFILE[] IS INITIAL.
For submitting the program to rfbibloo
PERFORM F_SUBMIT_RFBIBLOO.
ENDIF.
WRITE : / 'Number of success records '(003),
v_suc_rec LEFT-JUSTIFIED.
WRITE : / 'Number of error records '(004),
v_err_rec LEFT-JUSTIFIED.
IF NOT IT_ERRORS[] IS INITIAL.
Form to display the error report
PERFORM F_DISPLAY_REPORT.
ENDIF.
IF NOT IT_SUCCESS[] IS INITIAL.
Form to display the success report
PERFORM F_DISPLAY_SUC_REPORT.
ENDIF.
*--Standard footer
PERFORM STD_END_OF_REPORT.
TOP OF PAGE *
TOP-OF-PAGE.
*---Standard header
PERFORM STD_TOP_OF_PAGE CHANGING SY-TITLE.
*& Form f_get_local_data
Getting the data from presentation server
FORM F_GET_LOCAL_DATA.
DATA:LV_FILNAM TYPE STRING. "File name
LV_FILNAM = P_INFILE.
CALL FUNCTION 'GUI_UPLOAD'
EXPORTING
FILENAME = LV_FILNAM
FILETYPE = 'ASC'
has_field_separator = ' '
TABLES
DATA_TAB = IT_INFILE
EXCEPTIONS
FILE_OPEN_ERROR = 1
FILE_READ_ERROR = 2
NO_BATCH = 3
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.
IF SY-SUBRC <> 0.
MESSAGE ID SY-MSGID TYPE SY-MSGTY NUMBER SY-MSGNO
WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4.
ENDIF.
CLEAR V_COUNT_INFILE.
DESCRIBE TABLE IT_INFILE LINES V_COUNT_INFILE.
Determine if input file has data
IF V_COUNT_INFILE EQ 0.
MESSAGE A001(ZFI).
EXIT.
ELSE.
CONCATENATE 'Number of records read from input file '(002)
P_INFILE
': ' INTO V_TEXT.
WRITE: / V_TEXT, V_COUNT_INFILE LEFT-JUSTIFIED.
ENDIF.
ENDFORM. " f_get_local_data
*& Form F_GET_INPUT_DATA
Getting the data from apllication server
FORM F_GET_INPUT_DATA.
DATA: LV_FILNAM LIKE FILENAME-FILEEXTERN."File name
LV_FILNAM = P_INFILE.
Opening Dataset
OPEN DATASET LV_FILNAM FOR INPUT IN TEXT MODE.
Read legacy input file into internal table for furthing processing
DO.
CLEAR IT_INFILE.
READ DATASET P_INFILE INTO IT_INFILE.
IF SY-SUBRC NE 0.
EXIT.
ENDIF.
ADD 1 TO V_COUNT_INFILE.
ENDDO.
Determine if input file has data
IF V_COUNT_INFILE EQ 0.
MESSAGE A001(ZFI).
EXIT.
ELSE.
CONCATENATE 'Number of records read from input file '(002)
P_INFILE
': ' INTO V_TEXT.
WRITE: / V_TEXT, V_COUNT_INFILE LEFT-JUSTIFIED.
EXIT.
ENDIF.
closing dataset
CLOSE DATASET LV_FILNAM.
ENDFORM.
*& Form f_populate_data
Populate data
FORM F_POPULATE_DATA.
CLEAR: X_INFILE,IT_SUCCESS,V_SUC_REC.
REFRESH IT_SUCCESS.
SORT IT_INFILE BY TAX_ID_NO INVOICE_NO.
CONCATENATE '/int/' SY-SYSID '/' SY-MANDT '/in/IR853_FB01.dat'
INTO V_FILE.
CONDENSE V_FILE NO-GAPS.
Open the dataset
OPEN DATASET V_FILE FOR OUTPUT IN TEXT MODE.
IF SY-SUBRC EQ 0.
LOOP AT IT_INFILE.
X_INFILE = IT_INFILE.
AT FIRST.
To populate BGR00 structure
PERFORM F_POPULATE_BGR00.
TRANSFER BGR00 TO V_FILE.
ENDAT.
AT NEW INVOICE_NO.
To populate BBKPF structure
PERFORM F_POPULATE_BBKPF.
TRANSFER BBKPF TO V_FILE.
To populate BBSEG structure Credit
PERFORM POPULATE_BBSEG_C.
TRANSFER BBSEG TO V_FILE.
ENDAT.
To populate BBKPF structure Debit
PERFORM POPULATE_BBSEG_D.
TRANSFER BBSEG TO V_FILE.
CLEAR:X_INFILE.
ENDLOOP.
ENDIF.
ENDFORM. " f_populate_data
*& Form f_display_report
Display error report
FORM F_DISPLAY_REPORT.
Open the dataset
OPEN DATASET P_ERR FOR OUTPUT IN TEXT MODE.
IF SY-SUBRC EQ 0.
LOOP AT IT_ERRORS.
Transfer the error records to error file on application server
TRANSFER IT_ERRORS TO P_ERR.
ENDLOOP.
ENDIF.
Closing the dataset
CLOSE DATASET P_ERR.
IF NOT IT_ERRORS[] IS INITIAL.
FORMAT COLOR 1 INTENSIFIED OFF.
SKIP 2.
WRITE:/1(673) 'ERROR REPORT'(H01) CENTERED.
ULINE /1(673).
WRITE:/(4)'S.No'(005),
SY-VLINE,
(10) 'Tax Id No'(006),
SY-VLINE,
(12) 'Invoice No'(007),
SY-VLINE,
(8) 'Rec Type'(008),
SY-VLINE,
(6) 'Seq No'(009),
SY-VLINE,
(8) 'Batch No'(010),
SY-VLINE,
(8) 'UserID'(011),
SY-VLINE,
(8) 'NU1'(012),
SY-VLINE,
(11) 'Inv Amt'(013),
SY-VLINE,
(8) 'Inv Date'(014),
SY-VLINE,
(10) 'G/L Org ID'(015),
SY-VLINE,
(4) 'NU4'(012),
SY-VLINE,
(4) 'NU5'(012),
SY-VLINE,
(4) 'NU6'(012),
SY-VLINE,
(4) 'NU7'(012),
SY-VLINE,
(11) 'NU8'(012),
SY-VLINE,
(4) 'NU9'(012),
SY-VLINE,
(10) 'PO No'(016),
SY-VLINE,
(30) 'Inv Desc'(017),
SY-VLINE,
(10) 'Voucher No'(018),
SY-VLINE,
(10) 'Inv LinNo'(019),
SY-VLINE,
(11) 'Inv Lin Amt'(020),
SY-VLINE,
(9) 'Led ID-1'(021),
SY-VLINE,
(9) 'Led ID-2'(022),
SY-VLINE,
(15) 'Pri Sub Acc-1'(023),
SY-VLINE,
(15) 'Pri Sub Acc-2'(024),
SY-VLINE,
(15) 'Dept Win Lgr'(025),
SY-VLINE,
(5) 'NU2'(012),
SY-VLINE,
(6) 'NU3'(012),
SY-VLINE,
(11) 'Dist Amt'(026),
SY-VLINE,
(8) 'Inv Type'(027),
SY-VLINE,
(12) 'PO Line No'(028),
SY-VLINE,
(15) 'Inv Line Amt'(029),
SY-VLINE,
(5) 'NU10'(012),
SY-VLINE,
(13) 'NU11'(012),
SY-VLINE,
(5) 'NU12'(012),
SY-VLINE,
(6) 'NU13'(012),
SY-VLINE,
(5) 'NU14'(012),
SY-VLINE,
(5) 'NU15'(012),
SY-VLINE,
(200) 'Message'(030),
SY-VLINE.
FORMAT COLOR 6 INTENSIFIED OFF.
LOOP AT IT_ERRORS.
WRITE:/(4) SY-TABIX,
SY-VLINE,
(10) IT_ERRORS-TAX_ID_NO,
SY-VLINE,
(12) IT_ERRORS-INVOICE_NO,
SY-VLINE,
(8) IT_ERRORS-RECORD_TYPE,
SY-VLINE,
(6) IT_ERRORS-SEQ_NO,
SY-VLINE,
(8) IT_ERRORS-BATCH_NO,
SY-VLINE,
(8) IT_ERRORS-USERID,
SY-VLINE,
(8) IT_ERRORS-NU1,
SY-VLINE,
(11) IT_ERRORS-INV_HEADER_AMT,
SY-VLINE,
(8) IT_ERRORS-INVOICE_DATE,
SY-VLINE,
(10) IT_ERRORS-GL_ORG_ID,
SY-VLINE,
(4) IT_ERRORS-NU4,
SY-VLINE,
(4) IT_ERRORS-NU5,
SY-VLINE,
(4) IT_ERRORS-NU6,
SY-VLINE,
(4) IT_ERRORS-NU7,
SY-VLINE,
(11) IT_ERRORS-NU8,
SY-VLINE,
(4) IT_ERRORS-NU9,
SY-VLINE,
(10) IT_ERRORS-PONUMBER,
SY-VLINE,
(30) IT_ERRORS-INV_DESC,
SY-VLINE,
(10) IT_ERRORS-VOUCHER_NO,
SY-VLINE,
(10) IT_ERRORS-INV_LINE_NO,
SY-VLINE,
(11) IT_ERRORS-INV_LINE_AMT,
SY-VLINE,
(9) IT_ERRORS-LEDGER_ID1,
SY-VLINE,
(9) IT_ERRORS-LEDGER_ID2,
SY-VLINE,
(15) IT_ERRORS-PRI_SUBACCT1,
SY-VLINE,
(15) IT_ERRORS-PRI_SUBACCT2,
SY-VLINE,
(15) IT_ERRORS-DEPT_WIN_LDGR,
SY-VLINE,
(5) IT_ERRORS-NU2,
SY-VLINE,
(6) IT_ERRORS-NU3,
SY-VLINE,
(11) IT_ERRORS-DIST_AMT,
SY-VLINE,
(8) IT_ERRORS-INV_TYPE,
SY-VLINE,
(12) IT_ERRORS-PO_LINE_NO,
SY-VLINE,
(15) IT_ERRORS-INV_LINE_AMT_D,
SY-VLINE,
(5) IT_ERRORS-NU10,
SY-VLINE,
(13) IT_ERRORS-NU11,
SY-VLINE,
(5) IT_ERRORS-NU12,
SY-VLINE,
(6) IT_ERRORS-NU13,
SY-VLINE,
(5) IT_ERRORS-NU14,
SY-VLINE,
(5) IT_ERRORS-NU15,
SY-VLINE,
(200) IT_ERRORS-MSG,
SY-VLINE.
ENDLOOP.
ULINE /1(673).
ENDIF.
ENDFORM. " f_display_report
*& Form f_select_data
Selection of GL, Costcenter, vendor data
FORM F_SELECT_DATA.
DATA:L_DEPT(4) TYPE N. "Legacy department
CLEAR:IT_GL, IT_COSTCTR, IT_LFA1, IT_SUBACCT, IT_TAXID , IT_SUM.
REFRESH:IT_GL, IT_COSTCTR, IT_LFA1, IT_SUBACCT, IT_TAXID,IT_SUM.
SORT IT_INFILE BY TAX_ID_NO INVOICE_NO.
*Looping at input file
LOOP AT IT_INFILE.
X_INFILE = IT_INFILE.
*Summing the invoice line items amount and moving the sum to it_sum
IT_SUM-TAX_ID_NO = IT_INFILE-TAX_ID_NO.
IT_SUM-INVOICE_NO = IT_INFILE-INVOICE_NO.
IT_SUM-SUM2 = IT_INFILE-INV_LINE_AMT.
COLLECT IT_SUM.
CLEAR IT_SUM.
*Storing Primary Sub Account data
IT_SUBACCT-PRYACT1 = IT_INFILE-PRI_SUBACCT1.
IT_SUBACCT-PRYACT2 = IT_INFILE-PRI_SUBACCT2.
APPEND IT_SUBACCT.
CLEAR IT_SUBACCT.
*Storing Ledger ID data
CONCATENATE IT_INFILE-LEDGER_ID1 IT_INFILE-LEDGER_ID2 INTO
IT_LEDGER-LGR_ID.
L_DEPT = IT_INFILE-DEPT_WIN_LDGR.
IT_LEDGER-DEPT = L_DEPT.
APPEND IT_LEDGER.
CLEAR IT_LEDGER.
*Storing Tax ID data
IT_TAXID-TAXID1 = IT_INFILE-TAX_ID_NO.
IT_TAXID-TAXID2 = IT_INFILE-TAX_ID_NO.
APPEND IT_TAXID.
CLEAR IT_TAXID.
CONDENSE IT_INFILE-INVOICE_NO.
IT_INVNO-XBLNR = IT_INFILE-INVOICE_NO.
APPEND IT_INVNO.
CLEAR IT_INVNO.
ENDLOOP.
SORT IT_SUBACCT BY PRYACT1 PRYACT2.
SORT IT_LEDGER BY LGR_ID DEPT.
SORT IT_TAXID BY TAXID1 TAXID2.
SORT IT_SUM BY TAX_ID_NO INVOICE_NO.
SORT IT_INVNO BY XBLNR.
DELETE ADJACENT DUPLICATES FROM IT_SUBACCT COMPARING PRYACT1 PRYACT2.
DELETE ADJACENT DUPLICATES FROM IT_LEDGER COMPARING LGR_ID DEPT.
DELETE ADJACENT DUPLICATES FROM IT_TAXID COMPARING TAXID1 TAXID2.
IF NOT IT_INVNO[] IS INITIAL.
SELECT BUKRS
BELNR
XBLNR
INTO TABLE IT_BKPF
FROM BKPF
FOR ALL ENTRIES IN IT_INVNO
WHERE BUKRS = P_BUKRS AND
GJAHR = SY-DATUM+0(4) AND
BLART = C_DOCTYPE AND
XBLNR = IT_INVNO-XBLNR.
ENDIF.
IF NOT IT_SUBACCT[] IS INITIAL.
*Selecting G/L Account from General Ledger Z Table
SELECT SAP_GL_ACCOUNT
LGCY_SYSTEM
LGCY_PRIME_ACCT
LGCY_SUB_ACCT FROM ZFGLT_GL_PRI_SUB
INTO TABLE IT_GL
FOR ALL ENTRIES IN IT_SUBACCT
WHERE LGCY_SYSTEM = C_FADS AND
LGCY_PRIME_ACCT = IT_SUBACCT-PRYACT1 AND
LGCY_SUB_ACCT = IT_SUBACCT-PRYACT2.
IF SY-SUBRC = 0.
SORT IT_GL BY SAP_GL_ACCOUNT
LGCY_SYSTEM
LGCY_PRIME_ACCT
LGCY_SUB_ACCT.
ENDIF.
IF NOT IT_LEDGER[] IS INITIAL.
*Selecting cost center from Cost Center Z Table
SELECT COST_OBJECT
LGCY_LDGR
LGCY_DEPT FROM ZFCFT_CTR_DPT_LG
INTO TABLE IT_COSTCTR
FOR ALL ENTRIES IN IT_LEDGER
WHERE LGCY_LDGR = IT_LEDGER-LGR_ID AND
LGCY_DEPT = IT_LEDGER-DEPT.
IF SY-SUBRC = 0.
SORT IT_COSTCTR BY COST_OBJECT
LGCY_LDGR
LGCY_DEPT.
ENDIF.
ENDIF.
IF NOT IT_TAXID[] IS INITIAL.
*Selecting vendor no from vendor master data
SELECT A~LIFNR
B~BUKRS
A~STCD1
A~STCD2
FROM LFA1 AS A JOIN LFB1 AS B
ON ALIFNR = BLIFNR
INTO TABLE IT_LFA1
FOR ALL ENTRIES IN IT_TAXID
WHERE BUKRS = P_BUKRS AND
( STCD1 = IT_TAXID-TAXID1 OR
STCD2 = IT_TAXID-TAXID2 ).
ENDIF.
ENDIF.
ENDFORM. " f_select_data
*& Form f_validate_data
Validation of input file data
FORM F_VALIDATE_DATA.
DATA:L_ERRFLAG TYPE C, "Error flag
L_DEPT(4) TYPE N, "Department
L_LGR_ID(4) TYPE C, "Ledger ID
LV_NO_OF_VENDORS TYPE I, "No of vendors
L_SUM(11) TYPE P DECIMALS 2, "Sum
LV_MSG1(30) TYPE C, "Message
LV_MSG2(25) TYPE C, "Message
LV_MSG3(6) TYPE C, "Message
LV_MSG4(31) TYPE C, "Message
LV_MSG5(53) TYPE C, "Message
LV_MSG6(30) TYPE C, "Message
LV_MSG7(50) TYPE C. "Message
LOOP AT IT_INFILE.
CLEAR:LV_MSG1,LV_MSG2, LV_MSG3,LV_MSG4,LV_MSG5, LV_MSG6, LV_MSG7.
CLEAR L_ERRFLAG.
SORT IT_SUM BY TAX_ID_NO
INVOICE_NO.
CLEAR IT_SUBACCT.
Validating Primary Sub Acct1 and Acct2.
READ TABLE IT_GL WITH KEY LGCY_SYSTEM = C_FADS
LGCY_PRIME_ACCT = IT_INFILE-PRI_SUBACCT1
LGCY_SUB_ACCT = IT_INFILE-PRI_SUBACCT2 .
IF SY-SUBRC <> 0.
LV_MSG1 = 'Primary Sub Acct1 and Acct2'(035).
L_ERRFLAG = 'X'.
ENDIF.
MOVE IT_INFILE-DEPT_WIN_LDGR TO L_DEPT.
MOVE L_DEPT TO IT_INFILE-DEPT_WIN_LDGR.
CONCATENATE IT_INFILE-LEDGER_ID1 IT_INFILE-LEDGER_ID2 INTO
L_LGR_ID.
CLEAR: IT_COSTCTR.
Validating Ledger id & department
READ TABLE IT_COSTCTR WITH KEY LGCY_LDGR = L_LGR_ID
LGCY_DEPT = IT_INFILE-DEPT_WIN_LDGR.
IF SY-SUBRC <> 0.
LV_MSG2 = 'Ledger id & department'(036).
L_ERRFLAG = 'X'.
ENDIF.
Validating Tax ID
CLEAR:IT_LFA1.
READ TABLE IT_LFA1 WITH KEY STCD2 = IT_INFILE-TAX_ID_NO..
IF SY-SUBRC <> 0.
READ TABLE IT_LFA1 WITH KEY STCD1 = IT_INFILE-TAX_ID_NO..
IF SY-SUBRC <> 0.
LV_MSG3 = 'Tax ID'(041).
L_ERRFLAG = 'X'.
ENDIF.
ENDIF.
Checking for no of vendors selected based on tax id. If no of vendors
selected are more than 1 or 0 then error out the record
LV_NO_OF_VENDORS = 0.
LOOP AT IT_LFA1 WHERE STCD1 = IT_INFILE-TAX_ID_NO OR
STCD2 = IT_INFILE-TAX_ID_NO.
LV_NO_OF_VENDORS = LV_NO_OF_VENDORS + 1.
ENDLOOP.
IF LV_NO_OF_VENDORS = 0.
LV_MSG6 = 'No vendor found for TAXID'(037).
L_ERRFLAG = 'X'.
ELSEIF LV_NO_OF_VENDORS > 1.
LV_MSG4 = 'More than one vendor for Tax id'(038).
L_ERRFLAG = 'X'.
ENDIF.
Checking whether KU Document already exists for this Invoice No
CLEAR IT_INVNO.
READ TABLE IT_BKPF WITH KEY XBLNR = IT_INFILE-INVOICE_NO.
IF SY-SUBRC = 0.
LV_MSG7 = 'KU Document already exists for this Invoice No '(042).
L_ERRFLAG = 'X'.
ENDIF.
Checking whether the invoice header amt is equal to the line items amt
CLEAR IT_SUM.
READ TABLE IT_SUM WITH KEY TAX_ID_NO = IT_INFILE-TAX_ID_NO
INVOICE_NO = IT_INFILE-INVOICE_NO BINARY SEARCH.
CLEAR L_SUM.
L_SUM = IT_INFILE-INV_HEADER_AMT.
IF L_SUM <> IT_SUM-SUM2.
LV_MSG5 = 'Header amt is not equal to the sum of all line items'(039).
L_ERRFLAG = 'X'.
ENDIF.
Moving error records to error internal table
IF L_ERRFLAG = 'X'.
MOVE IT_INFILE TO IT_ERRORS.
CONCATENATE 'Invalid:'(040) LV_MSG1 LV_MSG2 LV_MSG3 LV_MSG4 LV_MSG5
LV_MSG6 LV_MSG7 INTO IT_ERRORS-MSG SEPARATED BY SPACE.
APPEND IT_ERRORS.
CLEAR : IT_ERRORS.
Deleting all the errors records from the processing internal table
and moving them to error table
V_ERR = V_ERR + 1.
IT_INFILE-ERROR = 'X'.
MODIFY IT_INFILE TRANSPORTING ERROR.
CLEAR IT_INFILE.
ENDIF.
ENDLOOP.
DELETE IT_INFILE WHERE ERROR = 'X'.
Deleting all the line items from the processing internal table where
atleast one line item is error one
SORT IT_ERRORS BY TAX_ID_NO
INVOICE_NO.
CLEAR V_ERR_REC.
LOOP AT IT_ERRORS.
DELETE IT_INFILE WHERE TAX_ID_NO = IT_ERRORS-TAX_ID_NO AND
INVOICE_NO = IT_ERRORS-INVOICE_NO.
AT NEW INVOICE_NO.
V_ERR_REC = V_ERR_REC + 1.
ENDAT.
ENDLOOP.
ENDFORM. " f_validate_data
*& Form f_error_data
Processing error data
FORM F_ERROR_DATA.
DELETE IT_ERROR WHERE MSG = 'Error in document: BKPFF $ D01030'(E02).
SORT IT_ERROR BY TAX_ID_NO INVOICE_NO.
LOOP AT IT_INFILE.
X_INFILE = IT_INFILE.
READ TABLE IT_ERROR WITH KEY TAX_ID_NO = IT_INFILE-TAX_ID_NO
INVOICE_NO = IT_INFILE-INVOICE_NO BINARY SEARCH.
IF SY-SUBRC = 0.
AT NEW INVOICE_NO.
V_ERR_REC = V_ERR_REC + 1.
ENDAT.
MOVE X_INFILE TO IT_ERRORS.
IT_ERRORS-MSG = IT_ERROR-MSG.
APPEND IT_ERRORS.
CLEAR IT_ERRORS.
ENDIF.
ENDLOOP.
ENDFORM. " f_error_data
*& Form f_display_suc_report
Display success report
FORM F_DISPLAY_SUC_REPORT.
FORMAT COLOR OFF.
FORMAT COLOR 1 INTENSIFIED OFF.
SKIP 2.
WRITE:/1(150) 'SUCCESS REPORT'(S01) CENTERED.
ULINE /1(150).
WRITE:/1 SY-VLINE,
2 'Doc No'(031),
13 SY-VLINE,
14 'Company code'(032),
26 SY-VLINE,
27 'Fiscal Year'(033),
40 SY-VLINE,
41 'Message'(034),
150 SY-VLINE.
FORMAT COLOR OFF.
FORMAT COLOR 5 INTENSIFIED OFF.
LOOP AT IT_SUCCESS.
WRITE:/1 SY-VLINE,
2 IT_SUCCESS-DOCNUM,
13 SY-VLINE,
14 IT_SUCCESS-BUKRS,
26 SY-VLINE,
27 IT_SUCCESS-FISYR,
40 SY-VLINE,
41 IT_SUCCESS-MSG,
150 SY-VLINE.
ENDLOOP.
ULINE /1(150).
ENDFORM. " f_display_suc_report
*& Form F_populate_bgr00
To populate BGR00 structure
FORM F_POPULATE_BGR00.
PERFORM F_INIT_STRUCTURES USING 'BGR00' C_NODATA.
CLEAR V_SESS.
CONCATENATE C_SESS SY-DATUM+4(4) INTO V_SESS SEPARATED BY '-'.
BGR00-STYPE = '0'.
BGR00-GROUP = V_SESS.
BGR00-MANDT = SY-MANDT.
BGR00-USNAM = SY-UNAME.
BGR00-START = SPACE.
BGR00-XKEEP = 'X'.
ENDFORM. " F_populate_bgr00
*& Form F_init_structures
Form to initialise structures
FORM F_INIT_STRUCTURES USING TABNAME LIKE DNTAB-TABNAME
I_NODATA LIKE C_NODATA.
REFRESH IT_NAMETAB.
CLEAR IT_NAMETAB.
CALL FUNCTION 'NAMETAB_GET'
EXPORTING
LANGU = SY-LANGU
TABNAME = TABNAME
TABLES
NAMETAB = IT_NAMETAB
EXCEPTIONS
NO_TEXTS_FOUND = 1.
IF SY-SUBRC = 0.
LOOP AT IT_NAMETAB.
CLEAR V_CHAR.
CONCATENATE IT_NAMETAB-TABNAME '-' IT_NAMETAB-FIELDNAME INTO V_CHAR.
ASSIGN (V_CHAR) TO <F1>.
<F1> = I_NODATA.
ENDLOOP.
ENDIF.
ENDFORM. " INIT_STRUCTURES
*& Form f_populate_bbkpf
To populate BBKPF structure
FORM F_POPULATE_BBKPF.
DATA:LV_DAT LIKE BKPF-BUDAT.
PERFORM F_INIT_STRUCTURES USING 'BBKPF' C_NODATA.
To post Header record.
BBKPF-STYPE = '1'.
BBKPF-TCODE = 'FB01'.
CLEAR LV_DAT.
LV_DAT = SY-DATUM.
WRITE LV_DAT TO BBKPF-BUDAT.
CLEAR LV_DAT.
LV_DAT = X_INFILE-INVOICE_DATE.
WRITE LV_DAT TO BBKPF-BLDAT.
BBKPF-BLART = C_DOCTYPE.
BBKPF-BUKRS = P_BUKRS..
BBKPF-WAERS = X_T001-WAERS.
BBKPF-XBLNR = X_INFILE-INVOICE_NO.
ENDFORM. " f_populate_bbkpf
*& Form populate_bbseg_c
To populate BBSEG structure Credit
FORM POPULATE_BBSEG_C.
PERFORM F_INIT_STRUCTURES USING 'BBSEG' C_NODATA.
BBSEG-STYPE = '2'.
BBSEG-TBNAM = 'BBSEG'.
BBSEG-NEWBS = '31'.
READ TABLE IT_LFA1 WITH KEY STCD2 = X_INFILE-TAX_ID_NO .
IF SY-SUBRC = 0.
BBSEG-NEWKO = IT_LFA1-LIFNR.
ELSE.
READ TABLE IT_LFA1 WITH KEY STCD1 = X_INFILE-TAX_ID_NO .
IF SY-SUBRC = 0.
BBSEG-NEWKO = IT_LFA1-LIFNR.
ENDIF.
ENDIF.
BBSEG-WRBTR = X_INFILE-INV_HEADER_AMT.
BBSEG-SGTXT = X_INFILE-INV_DESC.
ENDFORM. " populate_bbseg_c
*& Form POPULATE_BBSEG_D
To populate BBSEG structure Debit
FORM POPULATE_BBSEG_D.
DATA:L_LGR_ID(4) TYPE C. "ledger id
CLEAR L_LGR_ID.
PERFORM F_INIT_STRUCTURES USING 'BBSEG' C_NODATA.
BBSEG-STYPE = '2'.
BBSEG-TBNAM = 'BBSEG'.
BBSEG-NEWBS = '40'.
*Fetching G/L account
READ TABLE IT_GL WITH KEY LGCY_SYSTEM = C_FADS
LGCY_PRIME_ACCT = X_INFILE-PRI_SUBACCT1
LGCY_SUB_ACCT = X_INFILE-PRI_SUBACCT2.
IF SY-SUBRC = 0.
BBSEG-NEWKO = IT_GL-SAP_GL_ACCOUNT.
ENDIF.
BBSEG-WRBTR = X_INFILE-INV_LINE_AMT.
CONCATENATE X_INFILE-LEDGER_ID1 X_INFILE-LEDGER_ID2 INTO
L_LGR_ID.
*Fetching costcenter
READ TABLE IT_COSTCTR WITH KEY LGCY_LDGR = L_LGR_ID
LGCY_DEPT = X_INFILE-DEPT_WIN_LDGR.
IF SY-SUBRC = 0.
BBSEG-KOSTL = IT_COSTCTR-COST_OBJECT.
ENDIF.
BBSEG-SGTXT = X_INFILE-INV_DESC.
ENDFORM. " POPULATE_BBSEG_D
*& Form f_submit_rfbibloo
Submit the program to rfbibloo
FORM F_SUBMIT_RFBIBLOO.
Submitting the file for RFBIBL00
SUBMIT RFBIBL00 WITH DS_NAME = V_FILE
WITH CALLMODE = 'B'
WITH MAX_COMM = '9999'
WITH XINF = 'X'
AND RETURN.
Process the session if created successfully
IF SY-SUBRC = 0.
SUBMIT RSBDCSUB WITH MAPPE = V_SESS
WITH Z_VERARB = 'X'
WITH FEHLER = ''
EXPORTING LIST TO MEMORY
AND RETURN.
IF SY-SUBRC = 0.
Displaying the sessions data
PERFORM F_SESSION_LIST.
ENDIF.
ENDIF.
ENDFORM. " f_submit_rfbibloo
*& Form f_session_list
Displaying the sessions data
FORM F_SESSION_LIST.
DATA:LV_UCOMM LIKE SY-UCOMM. "usercommand
CALL FUNCTION 'LIST_FROM_MEMORY'
TABLES
LISTOBJECT = IT_LIST
EXCEPTIONS
NOT_FOUND = 1
OTHERS = 2.
IF NOT IT_LIST[] IS INITIAL.
CALL FUNCTION 'DISPLAY_LIST'
EXPORTING
FULLSCREEN = 'X'
CALLER_HANDLES_EVENTS =
IMPORTING
USER_COMMAND = LV_UCOMM
TABLES
LISTOBJECT = IT_LIST
EXCEPTIONS
EMPTY_LIST = 1
OTHERS = 2
ENDIF.
ENDFORM. " f_session_list -
Hi,all.
I have installed WebUtil and modified formsweb.cfg,default.env and orion-web.xml etc.
But when I run WebUtil Demo I got error:
WUC-015:You Form must contain the following Bean for this function to be available:oracle.forms.webutil.browser.BrowserFunctions.
Please helphere is my orion-web.xml:
<?xml version="1.0"?>
<!DOCTYPE orion-web-app PUBLIC "-//Evermind//DTD Orion Web Application 2.3//EN" "http://xmlns.oracle.com/ias/dtds/orion-web.dtd">
<orion-web-app
deployment-version="9.0.2.0.0"
jsp-cache-directory="./persistence"
temporary-directory="./temp"
servlet-webdir="/servlet/"
>
<context-param-mapping name="configFileName">D:\Oracle9iDS/forms90/server/formsweb.cfg</context-param-mapping>
<virtual-directory virtual-path="/html" real-path="D:\Oracle9iDS/tools/web90/html" />
<virtual-directory virtual-path="/java" real-path="D:\Oracle9iDS/forms90/java" />
<virtual-directory virtual-path="/jinitiator" real-path="D:\Oracle9iDS/jinit" />
<virtual-directory virtual-path="/webutil" real-path="D:\Oracle9iDS/forms90/webutil/lib" />
<session-tracking cookies="disabled" />
</orion-web-app>
##############################3
forms90web.cfg:
# $Id: formsweb.cfg,v 1.23 2002/01/25 06:51:41 oraforms Exp $
# formsweb.cfg - Forms Servlet default configuration file
# This file defines parameter values used by the FormsServlet (f90servlet)
# DEFAULT CONFIGURATIONS
# These are the default settings. Any of them may be overridden in the
# Named Configurations section. If they are not overridden, then the
# values here will be used.
# System Paremeters cannot be overridden in the URL. User Parameters can.
# SYSTEM PARAMETERS
# These have fixed names and give information required by the Forms
# Servlet in order to function. They cannot be specified in the URL query
# string. But they can be overriden in a named configuration (see below).
# Some parameters specify file names: if the full path is not given,
# they are assumed to be in the same directory as this file. If a path
# is given, then it should be a physical path, not a URL.
baseHTML=base.htm
baseHTMLjinitiator=D:\Oracle9iDS\forms90\webutil\server\webutiljini.htm
#baseHTMLjinitiator=basejini.htm
baseHTMLjpi=basejpi.htm
baseHTMLie=baseie.htm
HTMLdelimiter=%
# WorkingDirectory defaults to <oracle_home>/forms90 if unset.
workingDirectory=
envFile=default.env
# The next parameter specifies how to execute the Forms applet under
# Microsoft Internet Explorer 5.x. Put IE=native if you want the
# Forms applet to run in the browser's native JVM.
IE=JInitiator
# USER PARAMETERS
# These match variables (e.g. %form%) in the baseHTML file. Their values
# may be overridden by specifying them in the URL query string
# (e.g. "http://myhost.mydomain.com/servlet/f90servlet?form=myform&width=700")
# or by overriding them in a specific, named configuration (see below)
# 1) Runform arguments:
form=test.fmx
userid=
# These settings support running and debugging a form from the Builder:
otherparams=debug=%debug% buffer_records=%buffer% debug_messages=%debug_messages% array=%array% query_only=%query_only% quiet=%quiet% render=%render% host=%host% port=%port% record=%record% tracegroup=%tracegroup% log=%log% term=%term%
debug=no
buffer=no
debug_messages=no
array=no
query_only=no
quiet=yes
render=no
host=
port=
record=
tracegroup=
log=
term=
# 2) HTML page title, attributes for the BODY tag, and HTML to add before and
# after the form:
pageTitle=Oracle9iAS Forms Services
HTMLbodyAttrs=
HTMLbeforeForm=
HTMLafterForm=
# 3) Values for the Forms applet parameters:
serverURL=/forms90/l90servlet
codebase=/forms90/java
imageBase=DocumentBase
##<michael wang>
width =100%
height =100%
separateFrame=false
splashScreen=
background=
lookAndFeel=Oracle
colorScheme=teal
logo=
formsMessageListener=
recordFileName=
serverApp=default
# The following archive settings are for
# archive_jini - settings for JInitiator
# archive_ie - settings for IE native JVM
# archive - settings for all other cases (Java Plugin, Appletviewer, etc)
archive_jini=f90all_jinit.jar
archive_ie=f90all.cab
archive=f90all.jar
##<michael wang> for WebUtil
webUtilArchive=/forms90/webutil/webutil.jar,/forms90/webutil/jacob.jar
# Number of times client should retry if a network failure occurs. Only
# change after having read the documentation.
networkRetries=0
# 4) Parameters for JInitiator (used with Windows clients)
# Page displayed to Netscape users to allow them to download JInitiator.
# If you create your own page, you should set this parameter to point to it.
jinit_download_page=/forms90/jinitiator/us/jinit_download.htm
# Parameters related to the version of JInitiator.
jinit_classid=clsid:CAFECAFE-0013-0001-0009-ABCDEFABCDEF
jinit_exename=jinit.exe#Version=1,3,1,9
jinit_mimetype=application/x-jinit-applet;version=1.3.1.9
# 5) Parameters for the Java Plugin (used with non-Windows clients)
# Page displayed to users to allow them to download the JPI
# (NOTE: you should check this page and possibly change the settings)
jpi_download_page=http://java.sun.com/products/plugin/1.3/plugin-install.html
# Parameters related to the version of the Java Plugin
jpi_classid=clsid:8AD9C840-044E-11D1-B3E9-00805F499D93
jpi_codebase=http://java.sun.com/products/plugin/1.3/jinstall-13-win32.cab#Version=1,3,0,0
jpi_mimetype=application/x-java-applet;version=1.3
# 6) EM config parameter
# Set this to "1" to enable Enterprise Manager to track Forms processes
em_mode=0
# 6) OID Config parameters (for Single Sign-On)
oid_formsid=%OID_FORMSID%
oracle_home=D:\Oracle9iDS
# NAMED CONFIGURATIONS
# You may define your own specific, named configurations (sets of parameters)
# by adding special sections as illustrated in the following examples.
# Note that you need only specify the parameters you want to change. The
# default values (defined above) will be used for all other parameters.
# Use of a specific configuration can be requested by including the text
# "config=<your_config_name>" in the query string of the URL used to run
# a form. For example, to use the sepwin configuration, your could issue
# a URL like "http://myhost.mydomain.com/servlet/f90servlet?config=sepwin".
# Example 1: configuration to run forms in a separate browser window with
# "generic" look and feel (include "config=sepwin" in the URL)
[sepwin]
separateFrame=True
lookandfeel=Generic
# Example 2: configuration affecting users of MicroSoft Internet Explorer 5.x.
# Forms applet will run under the browser's native JVM rather than
# using Oracle JInitiator.
[ienative]
IE=native
# Example 3: configuration forcing use of the Java Plugin in all cases
# (even if the client browser is on Windows)
[jpi]
baseHTMLJInitiator=basejpi.htm
baseHTMLie=basejpi.htm
# Example 4: configuration running the Forms ListenerServlet in debug mode
# (debug messages will be written to the servlet engine's log file)
[debug]
serverURL=/servlet/l90servlet/debug
[webutil]
pageTitle=Oracle9iAS Forms Services - WebUtil
webUtilArchive=webutil.jar
WebUtilLogging=off
WebUtilLoggingDetail=normal
WebUtilErrorMode=Alert
#baseHTMLjinitiator=D:\Oracle9iDS\forms90\webutil\server\webutiljini.htm
archive_jini=f90all_jinit.jar
archive=f90all.jar
lookAndFeel=oracle
envFile=webutil.env
forms90.conf
# $Id: forms90.conf,v 1.8 2002/03/01 01:11:53 pkuhn Exp $
# Name
# forms90.conf
# Purpose
# Apache mod_oc4j and mod_jserv configuration file for Forms 9i Services.
# This file should be included into the Oracle Apache HTTP Listener
# configuration file (typically by adding an include statement to the
# oracle_apache.conf file)
# Remarks
# If Forms is to be used with JServ, the jserv.properties file needs editing
# to add the "forms90" servlet zone with properties file forms90.properties
# Notes
# Virtual paths: We use AliasMatch when defining virtual paths for
# security reasons (prevents directory browsing).
# Virtual path mapping for Forms Java jar and class files (codebase)
AliasMatch ^/forms90/java/(..*) "D:\Oracle9iDS/forms90/java/$1"
# Virtual path for JInitiator downloadable executable and download page
AliasMatch ^/forms90/jinitiator/(..*) "D:\Oracle9iDS/jinit/$1"
# Virtual path for runform.htm (used to run a form for testing purposes)
AliasMatch ^/forms90/html/(..*) "D:\Oracle9iDS/tools/web90/html/$1"
#<michael wang>
AliasMatch ^/forms90/webutil/(..*) "D:\Oracle9iDS/forms90/webutil/lib/$1"
#<michael wang>
# Configuration for JServ (if mod_jserv.c is available and not mod_oc4j.c)
<IfModule mod_jserv.c>
# Only configure for JServ if mod_oc4j is NOT available:
<IfModule !mod_oc4j.c>
# Virtual path mapping for FormsServlet and ListenerServlet.
# Purpose: paths to invoke the servlets should be /forms90/f90servlet
# and /forms90/l90servlet respectively.
# We map f90servlet to servlet.if90, and l90servlet to servlet.ifl90.
# The apJServAction directives (below) will then remap those.
AliasMatch ^/forms90/f90servlet(.*) "/servlet.if90"
AliasMatch ^/forms90/l90servlet(.*) "/servlet.ifl90"
ApJServMount /forms90/servlet /forms90
# Let the servlets be called by file extension (e.g /servlet.if90)
ApJServAction .if90 /forms90/servlet/f90servlet
ApJServAction .ifl90 /forms90/servlet/l90servlet
# Prevent access to the Forms Servlets by paths other than
# /forms90/f90servlet and /forms90/l90servlet.
# 1. Prevent access via the .if90 and .ifl90 file extensions:
<LocationMatch ^.*\.if.*90>
order deny,allow
deny from all
</LocationMatch>
# 2. Stop access by class (by paths like
# /forms90/servlet/oracle.forms.servlet.FormsServlet)
<LocationMatch ^/forms90/servlet/oracle\.forms.*>
order deny,allow
deny from all
</LocationMatch>
</IfModule>
</IfModule>
# Config. for OC4J
<IfModule mod_oc4j.c>
Oc4jMount /forms90 OC4J_BI_Forms
Oc4jMount /forms90/f90servlet OC4J_BI_Forms
Oc4jMount /forms90/f90servlet/* OC4J_BI_Forms
Oc4jMount /forms90/l90servlet OC4J_BI_Forms
Oc4jMount /forms90/l90servlet/* OC4J_BI_Forms
</IfModule>
########################3
webutil.cfg
# webutil.cfg - WebUtil default configuration file
# This file provides all of the configuration settings
# for webutil. These are divided into the following
# sections:
# 1. Logging Options
# 2. Installation Options
# 3. FileUpload and Download Options
# 4. Untranslatable Strings
# 5. Translatable Strings
# 1. Server Side Logging Options for logging errors and log messages
# You must set Enabled to true to allow mid tier logging without this
# mid tier logging will not take place no matter what PL/SQL or URL
# options are supplied to switch it on
# Once logging is enabled the other settings come into play
# Details
# file : Defines the file name and location of the log file.
# Note that WebUtil does no log file management you may
# need to manually clean this file up from time to time
# enabled : Can be TRUE or FALSE
# errorsonly : Can be TRUE or FALSE setting to true will ensure that
# only errors and not normal informational log messages
# are written to the log file
# For product use this would normally be set to TRUE
# connections: Can be TRUE or FALSE setting to true will cause each connection
# from a form using WebUtil to write into the log as it sets up.
logging.file=
logging.enabled=FALSE
logging.errorsonly=FALSE
logging.connections=FALSE
# 2. Installation Options
# WebUtil needs to download some files to the client in order to perform
# certain integration operations such as OLE or Registry Access
# These files are downloaded the first time that you access one of the
# functions than needs them
# You have to define the location of these files on the server
# Details
# syslib.location: The vitual path to the directory holding the
# the webutil library files on the server side
# this must either be an absolute URL or a url
# URL that is relative to the documentbase
# syslib.<os>.<package>.<n>: The name(s) of the libraries required for particular
# webutil beans
# The format of this is name|size|version|showDownloadDialog
# multiple libraries can be downloaded per package but
# ensure that the <n> values are consecutive and start at 1
install.syslib.location=/webutil
## Do not change the following lines unless instructed to do so
install.syslib.0.7.1=jacob.dll|94208|1.0|true
install.syslib.0.9.1=JNIsharedstubs.dll|65582|1.0|true
install.syslib.0.9.2=d2kwut60.dll|192512|1.0|true
## But you can add your own libraries in here
#install.syslib.0.user.1=testwebutil.dll|204872|1.0|true
# 3. Upload / Download options
# For the file upload and download options you can define the default
# locations on the server that webutil can use as a work area
# Optionally you can switch upload and download off
# Details
# transfer.database.enabled: Can be TRUE or FALSE - allows you to disable
# upload and download direct from the database
# server.
# transfer.appsrv.enabled: Can be TRUE or FALSE - allows you to disable
# upload and download direct from the application
# server.
# transfer.appsrv.workAreaRoot: The root of the location in which WebUtil can
# store temporary files uploaded from the client.
# This location is always readable and writable
# no matter what the settings in appsrv.read and
# appsrv.write are.
# This setting is required if you need the
# Client side READ /WRITE_IMAGE_FILE procs
# transfer.appsrv.accessControl:Can be TRUE or FALSE - allows you to indicate
# that uploads and downloads can only occur from
# the directories named in the
# transfer.appsrv.read.n and transfer.appsrv.write.n
# entries and their subdirecories. If this setting
# is FALSE transfers can happen anywhere.
# transfer.appsrv.read.<n>: List of directory names that downloads can read
# from.
# transfer.appsrv.write.<n>: List of directory names that uploads can write
# to.
#NOTE: By default the file transfer is disabled as a security measure
transfer.database.enabled=FALSE
transfer.appsrv.enabled=FALSE
transfer.appsrv.workAreaRoot=c:\temp
transfer.appsrv.accessControl=TRUE
#List transfer.appsrv.read.<n> directories
transfer.appsrv.read.1=c:\temp
#List transfer.appsrv.write.<n> directories
transfer.appsrv.write.1=c:\temp
# 4. Untranslatable Strings
# These errors can happen early in the initialisation process before we
# have the client locale information to use to detect the correct
# language version for the error
EN.msg.error.error008=WUC-008: Server side logging was requested but no log file was specified - logging is disabled
# 5. Translatable Strings
# The following properties represent Strings displayed in various server
# side error messages
# They are available here to allow customisation
# Messages are in the Format "<countrycode>.msg.key
# The message reading code picks up the country code automatically from the
# client. If the required country code cannot be found then the english (EN)
# message is displayed as a default.
# You may alter the EN versions of each key, but do not remove them!
# General Dialog titles
EN.msg.install.progress.title=WebUtil Install
EN.msg.install.progress.subtitle=Downloading required libraries; Please wait...
EN.msg.errordialog.title=WebUtil Error
# App Server side errors
EN.msg.error.error007=WUC-007: Unable to write to WebUtil logging file
EN.msg.error.error015=WUC-015: Your Form must contain the following Bean for this function to be available:
EN.msg.error.error408=WUH-408: The WebUtil Client code sent back a bad Process ID - Please report this error
EN.msg.error.error110=WUT-110: Database LOB is of zero length
EN.msg.error.error111=WUT-111: Database LOB is un-initialised
EN.msg.error.error112=WUT-112: Invalid open mode for Blob. Value should be W or R
EN.msg.error.error113=WUT-113: Too many rows match the supplied where clause
EN.msg.error.error114=WUT-114: SQL Error
EN.msg.error.error115=WUT-115: Checksum Failed
EN.msg.error.error116=WUT-116: Transfer already in progress
EN.msg.error.error117=WUT-117: Application Server file name cannot be null
EN.msg.error.error118=WUT-118: Application Server file does not exist or is of zero length
EN.msg.error.error119=WUT-119: Error reading data from Application Server file
EN.msg.error.error120=WUT-120: Zero bytes read from Application Server file
EN.msg.error.error121=WUT-121: This file transfer has been forbidden by the Adminstrator
EN.msg.error.error122=WUT-122: Java Functions are not available on the Appliciation Server
EN.msg.error.error123=WUT-123: The webutil.jar file cannot be found on the Appliciation Server Classpath - Some file transfer functions will not work.
EN.msg.error.error124=WUT-124: Unable write data on the application server
EN.msg.error.error125=WUT-125: Checksum error closing file on application server
EN.msg.error.error126=WUT-126: Error closing application server file
EN.msg.error.error127=WUT-127: Unable to create workarea
EN.msg.error.error128=WUT-128: Exception creating workarea
#German versions of the Dialog Titles
DE.msg.install.progress.title=WebUtil Installation
DE.msg.install.progress.subtitle=Ben�tigte Bibliotheken werden geladen; Bitte warten ...
DE.msg.errordialog.title=WebUtil Fehler
#German versions of the Errors
DE.msg.error.error007=WUC-007: Kann nicht auf die WebUtil Log Datei zugreifen
DE.msg.error.error015=WUC-015: Folgende Bean muss in der Form enthalten sein um diese Funktion zu nutzen:
DE.msg.error.error408=WUH-408: Der WebUtil Client Code hat eine ung�ltige Prozess ID zur�ckgegeben - Bitte melden Sie diesen Fehler
DE.msg.error.error110=WUT-110: Datenbank LOB hat eine L�nge von Null
DE.msg.error.error111=WUT-111: Datenbank LOB ist nicht initialisiert
DE.msg.error.error112=WUT-112: Ung�ltiger Modus zum �ffnen eines Blobs. Wert muss W oder R sein
DE.msg.error.error113=WUT-113: Zu viele Reihen entsprechen der angegebenen Bedingung
DE.msg.error.error114=WUT-114: SQL Fehler
DE.msg.error.error115=WUT-115: Checksummen Fehler
DE.msg.error.error116=WUT-116: �bertragung erfolgt bereits
DE.msg.error.error117=WUT-117: Ein g�ltiger Dateiname auf dem Applikation Server ist erforderlich
DE.msg.error.error118=WUT-118: Datei auf dem Applikation Server fehlt oder hat eine L�nge von Null
DE.msg.error.error119=WUT-119: Fehler beim Lesen der Datei auf dem Applikations Server
DE.msg.error.error120=WUT-120: Es konnte kein Byte vom Applikation Server gelesen werden
DE.msg.error.error121=WUT-121: Die �bertragung dieser Datei wurde vom Administrator unterbunden
DE.msg.error.error122=WUT-122: Java Funktionen sind auf dem Applikations Server nicht verf�gbar
DE.msg.error.error123=WUT-123: Die Datei webutil.jar befindet sich nicht im CLASSPATH des Applikations Servers - Einige Datei�bertragungsfunktionen stehen somit nicht zur Verf�gung
DE.msg.error.error124=WUT-124: Es konnte nicht schreibend auf den Applikations Server zugegriffen werden
DE.msg.error.error125=WUT-125: Checksummen Fehler beim Schlie�en der Datei auf dem Applikations Server
DE.msg.error.error126=WUT-126: Fehler beim Schlie�en der Datei auf dem Applikations Server
DE.msg.error.error127=WUT-127: Der Arbeitsbereich konnte nicht erstellt werden
DE.msg.error.error128=WUT-128: Ausnahmefehler beim Erstellen des Arbeitsbereiches
#French versions of the Dialog Titles
FR.msg.install.progress.title=WebUtil Installation
FR.msg.install.progress.subtitle=Ben�tigte Bibliotheken werden geladen; Bitte warten ...
FR.msg.errordialog.title=WebUtil Fehler
#French versions of the Errors
FR.msg.error.error007=WUC-007: Ecriture impossible dans le fichier de log WebUtil
FR.msg.error.error015=WUC-015: Votre forme doit contenir le Bean suivant pour que cette fonction soit disponible:
FR.msg.error.error408=WUH-408: Le client Webutil a renvoy?un numero de process erron?- Contactez votre administrateur
FR.msg.error.error110=WUT-110: LOB dans la base de donn�es a une longueur de zero
FR.msg.error.error111=WUT-111: LOB dans la base de donn�es n'est pas initialis?
FR.msg.error.error112=WUT-112: Mode d'ouverture invalide pour un BLOB. La valeur doit �tre W ou R
FR.msg.error.error113=WUT-113: Trop de lignes renvoy�es pour cette clause where
FR.msg.error.error114=WUT-114: Erreur SQL
FR.msg.error.error115=WUT-115: Echec du Checksum
FR.msg.error.error116=WUT-116: Transfer d�j?en progr�s
FR.msg.error.error117=WUT-117: Le nom du fichier sur le serveur d'application ne peut �tre null
FR.msg.error.error118=WUT-118: Le nom du fichier sur le serveur d'application n'existe pas ou a une taille de zero
FR.msg.error.error119=WUT-119: Erreur en lecture des donn�es provenant du fichier sur le serveur d'application
FR.msg.error.error120=WUT-120: Zero bytes lu ?partir du fichier sur le serveur d'application
FR.msg.error.error121=WUT-121: Ce transfert de fichier est interdit par l'administrateur
FR.msg.error.error122=WUT-122: Java Fonctions non disponibles sur le serveur d'application
FR.msg.error.error123=WUT-123: Le fichier webutil.jar n'est pas present dans le Classpath du serveur d'application - Certaines fonctions de transfert de fichiers ne fonctioneront pas
FR.msg.error.error124=WUT-124: Impossible d'�crire sur le serveur d'application
FR.msg.error.error125=WUT-125: Erreur de Checksum en fermant le fichier sur le serveur d'application
FR.msg.error.error126=WUT-126: Erreur pendant la fermeture du fichier sur le serveur d'application
FR.msg.error.error127=WUT-127: Creation de la Workarea impossible
FR.msg.error.error128=WUT-128: Exception pendant la creation de la workarea
webutil.env
#A sample .ENV file for use with WebUtil note the following important Points:
# 1. The webutil.jar file is in the classpath so that the upload to app server will work
# 2. The FORMS90_PATH includes the directory which holds the webutil.pll
# 3. The WEBUTIL_CONFIG parameter is defined to point at the webutil.cfg file
# !! If you re-use this env file then rememeber to change the paths !!
ORACLE_HOME=D:\Oracle9iDS
FORMS90_PATH=D:\Oracle9iDS\forms90\webutil\forms
CLASSPATH=D:\Oracle9i\jlib\debugger.jar;D:\Oracle9i\jlib\ewt3.jar:D:\Oracle9i\jlib\share.jar;D:\Oracle9i\jlib\utj90.jar;D:\Oracle9i\jdk\jre\lib\rt.jar;D:\Oracle9iDS\forms90\webutil\lib\webutil.jar
WEBUTIL_CONFIG=D:\Oracle9iDS\forms90\webutil\server\webutil.cfg
I've double checked my configuration many times.
but the error WUC-015 still exist, and the webutil-demo
failed to run. -
Anyone can explain this program to me?
import java.util.List;
import java.util.LinkedList;
import java.util.Iterator;
public class Lab_02
public static List getLinesOfText(int m)
{ List lines = new LinkedList();
StringBuffer line = new StringBuffer();
for( int i = 0; i < m; i++ )
{ for( int j = 0; j < m; j++ )
line.append( j < i ? " ": Integer.toString(i%10) );
lines.add(line.toString());
line.setLength(0);
return lines;
public static void main(String args[])
int n = 15;
if( args.length > 0 )
try
{ n = Integer.parseInt(args[0]);
catch( NumberFormatException nfe )
{ String msg = nfe.getMessage();
System.out.println(msg);
Iterator lineIterator = getLinesOfText(n).iterator();
while(lineIterator.hasNext())
System.out.println(lineIterator.next());public static void main(String[] args) {
int n = 15;
if( args.length > 0 ) { // if an argument was entered
try { n = Integer.parseInt(args[0]); } // change it to an int
catch( NumberFormatException nfe ) { // if bad format
String msg = nfe.getMessage(); // print a message
System.out.println(msg);
// call getLinesOfText(with the above number, it returns a List),
// get an iterator for that list, and
// assign that iterator to lineIterator
Iterator lineIterator = getLinesOfText(n).iterator();
// loop through the iterator printing each value
while(lineIterator.hasNext()) System.out.println(lineIterator.next());
public static List getLinesOfText(int m) { // m = count from call above
List lines = new LinkedList(); // make a LinkedList, assign to lines
StringBuffer line = new StringBuffer(); // make a StringBuffer, assign to line
for( int i = 0; i < m; i++ ) { // loop m times
for( int j = 0; j < m; j++ ) { // for each value of i, loop m times
// append either a space or the string representation of i modulo 10
// to the StringBuffer depending on whether j is less that i
// (modulo = remainder after division by 10)
line.append( j < i ? " ": Integer.toString(i%10) );
// Add the string representation of line (a StringBuffer) to the linkedlist lines
lines.add(line.toString());
// Clear the StringBuffer
line.setLength(0);
// return the linked list
return lines;
} -
Hi All,
I have a problem in using the webutil hope can get some help here
I have provided an option to attach scanned documents and images on the form where in the path of it will be stored on the form but the image will be loaded from the physical drive when ever a user click on the view button.
It is working fine when im on the server itself .
When i try to attach one file from the client machine then it is giving me the error.
The source for attaching the image and for viewing is followed here
***** when button pressed trigger for attaching
Declare
v_type varchar2(4);
v_path varchar2(100);
begin
v_path := Client_Get_file_name(file_filter=>'All Files (*.*) |*.*|Bmp Files (*.Bmp)|*.Bmp|Gif Files(*.gif)|*.gif|Tiff Files (*.Tif)|*.Tif|JPEG Files (*.jpg)|*.jpg|');
:block2.rdocpath:=v_path ;
if ltrim(v_path) is not null then
v_type := substr(v_path,-3);
Client_Image.Read_image_file(v_path, v_type, 'img.img');
if form_success then
go_item('img.img');
end if;
end if;
end;
and for viewing the source image
:parameter.helpitem := :system.cursor_item;
Declare
v_type varchar2(4);
v_path varchar2(100);
AL NUMBER;
begin
IF :block2.rdocpath IS NOT NULL THEN
V_PATH:=:block2.rdocpath;
GO_BLOCK('img');
CLEAR_BLOCK(NO_VALIDATE);
Client_Image.Read_image_file(v_path, v_type, 'img.img');
GO_BLOCK('img');
ELSE
SET_ALERT_PROPERTY('STOP',ALERT_MESSAGE_TEXT,'Image file not specified');
al:=show_alert('STOP');
GO_BLOCK('img');
CLEAR_BLOCK(NO_VALIDATE);
GO_BLOCK('RETSHAREPURCH2');
end if;
end
Please helpThis is My Existing Webutil.cfg file .lease have a look at it and advise the need ful
Thanks & Regards
# webutil.cfg - WebUtil default configuration file
# This file provides all of the configuration settings
# for webutil. These are divided into the following
# sections:
# 1. Logging Options
# 2. Installation Options
# 3. FileUpload and Download Options
# 4. Untranslatable Strings
# 5. Translatable Strings
# 1. Server Side Logging Options for logging errors and log messages
# You must set Enabled to true to allow mid tier logging without this
# mid tier logging will not take place no matter what PL/SQL or URL
# options are supplied to switch it on
# Once logging is enabled the other settings come into play
# Details
# file : Defines the file name and location of the log file.
# Note that WebUtil does no log file management you may
# need to manually clean this file up from time to time
# enabled : Can be TRUE or FALSE
# errorsonly : Can be TRUE or FALSE setting to true will ensure that
# only errors and not normal informational log messages
# are written to the log file
# For product use this would normally be set to TRUE
# connections: Can be TRUE or FALSE setting to true will cause each connection
# from a form using WebUtil to write into the log as it sets up.
logging.file=
logging.enabled=FALSE
logging.errorsonly=FALSE
logging.connections=FALSE
# 2. Installation Options
# WebUtil needs to download some files to the client in order to perform
# certain integration operations such as OLE or Registry Access
# These files are downloaded the first time that you access one of the
# functions than needs them
# You have to define the location of these files on the server
# Details
# syslib.location: The vitual path to the directory holding the
# the webutil library files on the server side
# this must either be an absolute URL or a url
# URL that is relative to the documentbase
# syslib.<os>.<package>.<n>: The name(s) of the libraries required for particular
# webutil beans
# The format of this is name|size|version|showDownloadDialog
# multiple libraries can be downloaded per package but
# ensure that the <n> values are consecutive and start at 1
install.syslib.location=/webutil
## Do not change the following lines unless instructed to do so
install.syslib.0.7.1=jacob.dll|94208|1.0|true
install.syslib.0.9.1=JNIsharedstubs.dll|65582|1.0|true
install.syslib.0.9.2=d2kwut60.dll|192512|1.0|true
## But you can add your own libraries in here
#install.syslib.0.user.1=testwebutil.dll|204872|1.0|true
# 3. Upload / Download options
# For the file upload and download options you can define the default
# locations on the server that webutil can use as a work area
# Optionally you can switch upload and download off
# Details
# transfer.database.enabled: Can be TRUE or FALSE - allows you to disable
# upload and download direct from the database
# server.
# transfer.appsrv.enabled: Can be TRUE or FALSE - allows you to disable
# upload and download direct from the application
# server.
# transfer.appsrv.workAreaRoot: The root of the location in which WebUtil can
# store temporary files uploaded from the client.
# This location is always readable and writable
# no matter what the settings in appsrv.read and
# appsrv.write are.
# This setting is required if you need the
# Client side READ /WRITE_IMAGE_FILE procs
# transfer.appsrv.accessControl:Can be TRUE or FALSE - allows you to indicate
# that uploads and downloads can only occur from
# the directories named in the
# transfer.appsrv.read.n and transfer.appsrv.write.n
# entries and their subdirecories. If this setting
# is FALSE transfers can happen anywhere.
# transfer.appsrv.read.<n>: List of directory names that downloads can read
# from.
# transfer.appsrv.write.<n>: List of directory names that uploads can write
# to.
#NOTE: By default the file transfer is disabled as a security measure
transfer.database.enabled=TRUE
transfer.appsrv.enabled=TRUE
transfer.appsrv.workAreaRoot=c:\temp
transfer.appsrv.accessControl=TRUE
#List transfer.appsrv.read.<n> directories
transfer.appsrv.read.1=c:\temp
#List transfer.appsrv.write.<n> directories
transfer.appsrv.write.1=c:\temp
# 4. Untranslatable Strings
# These errors can happen early in the initialisation process before we
# have the client locale information to use to detect the correct
# language version for the error
EN.msg.error.error008=WUC-008: Server side logging was requested but no log file was specified - logging is disabled
# 5. Translatable Strings
# The following properties represent Strings displayed in various server
# side error messages
# They are available here to allow customisation
# Messages are in the Format "<countrycode>.msg.key
# The message reading code picks up the country code automatically from the
# client. If the required country code cannot be found then the english (EN)
# message is displayed as a default.
# You may alter the EN versions of each key, but do not remove them!
# General Dialog titles
EN.msg.install.progress.title=WebUtil Install
EN.msg.install.progress.subtitle=Downloading required libraries; Please wait...
EN.msg.errordialog.title=WebUtil Error
# App Server side errors
EN.msg.error.error007=WUC-007: Unable to write to WebUtil logging file
EN.msg.error.error015=WUC-015: Your Form must contain the following Bean for this function to be available:
EN.msg.error.error408=WUH-408: The WebUtil Client code sent back a bad Process ID - Please report this error
EN.msg.error.error110=WUT-110: Database LOB is of zero length
EN.msg.error.error111=WUT-111: Database LOB is un-initialised
EN.msg.error.error112=WUT-112: Invalid open mode for Blob. Value should be W or R
EN.msg.error.error113=WUT-113: Too many rows match the supplied where clause
EN.msg.error.error114=WUT-114: SQL Error
EN.msg.error.error115=WUT-115: Checksum Failed
EN.msg.error.error116=WUT-116: Transfer already in progress
EN.msg.error.error117=WUT-117: Application Server file name cannot be null
EN.msg.error.error118=WUT-118: Application Server file does not exist or is of zero length
EN.msg.error.error119=WUT-119: Error reading data from Application Server file
EN.msg.error.error120=WUT-120: Zero bytes read from Application Server file
EN.msg.error.error121=WUT-121: This file transfer has been forbidden by the Adminstrator
EN.msg.error.error122=WUT-122: Java Functions are not available on the Appliciation Server
EN.msg.error.error123=WUT-123: The webutil.jar file cannot be found on the Appliciation Server Classpath - Some file transfer functions will not work.
EN.msg.error.error124=WUT-124: Unable write data on the application server
EN.msg.error.error125=WUT-125: Checksum error closing file on application server
EN.msg.error.error126=WUT-126: Error closing application server file
EN.msg.error.error127=WUT-127: Unable to create workarea
EN.msg.error.error128=WUT-128: Exception creating workarea
#German versions of the Dialog Titles
DE.msg.install.progress.title=WebUtil Installation
DE.msg.install.progress.subtitle=Benötigte Bibliotheken werden geladen; Bitte warten ...
DE.msg.errordialog.title=WebUtil Fehler
#German versions of the Errors
DE.msg.error.error007=WUC-007: Kann nicht auf die WebUtil Log Datei zugreifen
DE.msg.error.error015=WUC-015: Folgende Bean muss in der Form enthalten sein um diese Funktion zu nutzen:
DE.msg.error.error408=WUH-408: Der WebUtil Client Code hat eine ungültige Prozess ID zurückgegeben - Bitte melden Sie diesen Fehler
DE.msg.error.error110=WUT-110: Datenbank LOB hat eine Länge von Null
DE.msg.error.error111=WUT-111: Datenbank LOB ist nicht initialisiert
DE.msg.error.error112=WUT-112: Ungültiger Modus zum Öffnen eines Blobs. Wert muss W oder R sein
DE.msg.error.error113=WUT-113: Zu viele Reihen entsprechen der angegebenen Bedingung
DE.msg.error.error114=WUT-114: SQL Fehler
DE.msg.error.error115=WUT-115: Checksummen Fehler
DE.msg.error.error116=WUT-116: Übertragung erfolgt bereits
DE.msg.error.error117=WUT-117: Ein gültiger Dateiname auf dem Applikation Server ist erforderlich
DE.msg.error.error118=WUT-118: Datei auf dem Applikation Server fehlt oder hat eine Länge von Null
DE.msg.error.error119=WUT-119: Fehler beim Lesen der Datei auf dem Applikations Server
DE.msg.error.error120=WUT-120: Es konnte kein Byte vom Applikation Server gelesen werden
DE.msg.error.error121=WUT-121: Die Übertragung dieser Datei wurde vom Administrator unterbunden
DE.msg.error.error122=WUT-122: Java Funktionen sind auf dem Applikations Server nicht verfügbar
DE.msg.error.error123=WUT-123: Die Datei webutil.jar befindet sich nicht im CLASSPATH des Applikations Servers - Einige Dateiübertragungsfunktionen stehen somit nicht zur Verfügung
DE.msg.error.error124=WUT-124: Es konnte nicht schreibend auf den Applikations Server zugegriffen werden
DE.msg.error.error125=WUT-125: Checksummen Fehler beim Schließen der Datei auf dem Applikations Server
DE.msg.error.error126=WUT-126: Fehler beim Schließen der Datei auf dem Applikations Server
DE.msg.error.error127=WUT-127: Der Arbeitsbereich konnte nicht erstellt werden
DE.msg.error.error128=WUT-128: Ausnahmefehler beim Erstellen des Arbeitsbereiches
#French versions of the Dialog Titles
FR.msg.install.progress.title=WebUtil Installation
FR.msg.install.progress.subtitle=Benötigte Bibliotheken werden geladen; Bitte warten ...
FR.msg.errordialog.title=WebUtil Fehler
#French versions of the Errors
FR.msg.error.error007=WUC-007: Ecriture impossible dans le fichier de log WebUtil
FR.msg.error.error015=WUC-015: Votre forme doit contenir le Bean suivant pour que cette fonction soit disponible:
FR.msg.error.error408=WUH-408: Le client Webutil a renvoyé un numero de process erroné - Contactez votre administrateur
FR.msg.error.error110=WUT-110: LOB dans la base de données a une longueur de zero
FR.msg.error.error111=WUT-111: LOB dans la base de données n'est pas initialisé
FR.msg.error.error112=WUT-112: Mode d'ouverture invalide pour un BLOB. La valeur doit être W ou R
FR.msg.error.error113=WUT-113: Trop de lignes renvoyées pour cette clause where
FR.msg.error.error114=WUT-114: Erreur SQL
FR.msg.error.error115=WUT-115: Echec du Checksum
FR.msg.error.error116=WUT-116: Transfer déjà en progrès
FR.msg.error.error117=WUT-117: Le nom du fichier sur le serveur d'application ne peut être null
FR.msg.error.error118=WUT-118: Le nom du fichier sur le serveur d'application n'existe pas ou a une taille de zero
FR.msg.error.error119=WUT-119: Erreur en lecture des données provenant du fichier sur le serveur d'application
FR.msg.error.error120=WUT-120: Zero bytes lu à partir du fichier sur le serveur d'application
FR.msg.error.error121=WUT-121: Ce transfert de fichier est interdit par l'administrateur
FR.msg.error.error122=WUT-122: Java Fonctions non disponibles sur le serveur d'application
FR.msg.error.error123=WUT-123: Le fichier webutil.jar n'est pas present dans le Classpath du serveur d'application - Certaines fonctions de transfert de fichiers ne fonctioneront pas
FR.msg.error.error124=WUT-124: Impossible d'écrire sur le serveur d'application
FR.msg.error.error125=WUT-125: Erreur de Checksum en fermant le fichier sur le serveur d'application
FR.msg.error.error126=WUT-126: Erreur pendant la fermeture du fichier sur le serveur d'application
FR.msg.error.error127=WUT-127: Creation de la Workarea impossible
FR.msg.error.error128=WUT-128: Exception pendant la creation de la workarea -
Create a Task, for use in "Deferred Task"
I am in the processing of creating Deferred Tasks for my Update-User workflow.
I know how to create these easily. My problem is : the actual "Task" itself, which will be called upon from the Workflow.
I don't know the proper syntax for it.
For instance, below is the code I am using for my "Send Email Task". This task is supposed to send an automatic email notification.
*<?xml version='1.0' encoding='UTF-8'?>*
*<!DOCTYPE TaskDefinition PUBLIC 'waveset.dtd' 'waveset.dtd'>*
*<!-- MemberObjectGroups="#ID#Top" authType="UserAdminTask" createDate="Thu Jul 16 15:22:08 EEST 2009" extensionClass="WFProcess" name="Send Email Task" visibility="invisible"-->*
*<TaskDefinition name='Send Email Task' creator='%STARTUP%Configurator' createDate='1247746928617' lastModifier='%STARTUP%Configurator' lastModDate='1247746928617' repoMod='1247746928170' primaryObjectClass='TaskDefinition' wstype='ProvisioningTask' taskType='Workflow' executor='com.waveset.workflow.WorkflowExecutor' syncControlAllowed='true' execMode='sync' execLimit='0' resultLimit='3600' resultOption='delete' visibility='invisible' progressInterval='0'>*
*<Extension>*
*<WFProcess maxSteps='0' audit='true'>*
*<Variable name='user' input='true'>*
*<Comments>
 A user view. This is required.
 </Comments>*
*</Variable>*
*<Variable name='backgroundProvisioning' input='true'>*
*</Variable>*
*<Variable name='provisioningRetryButton' value='true' input='true'>*
*<Comments>
 Set to "true" to enable the inclusion of a Retry link
 in the task result if the provisioning fails.
 </Comments>*
*</Variable>*
*<Variable name='approvals'>*
*<Comments>
 Returned from the Lighthouse Approval process. Contains the
 approval structure. The approvals.approved variable set if
 all approvals were successful. This is passed into the Notify
 process later for post-provisioning notifications.
 </Comments>*
*</Variable>*
*<Variable name='userCreated'>*
*<Comments>
 Set to "true" from the Provision workflow when the
 Lighthouse account has been created.
 </Comments>*
*</Variable>*
*<Variable name='sunset'>*
*<Comments>
 Object containing information for registering a sunset date/time.
 </Comments>*
*</Variable>*
*<Variable name='error'>*
*<Comments>Set in the event of unusual processing errors.</Comments>*
*</Variable>*
*<Variable name='options'>*
*<Comments>Options to pass to the provisioning task regarding resource
 provisioning.
 </Comments>*
*</Variable>*
*<Transition to='end'>*
*<Comments>
 Terminate if we encounter unusual errors (not provisioning errors).
 </Comments>*
*<ref>error</ref>*
*</Transition>*
*<Activity id='0' name='start'>*
*<Transition to='Notify'/>*
*</Activity>*
*<Activity id='1' name='Notify'>*
*<Action id='0' name='Email' application='com.waveset.provision.WorkflowServices'>*
*<Argument name='op' value='notify'/>*
*<Argument name='template' value='Send Email Now'/>*
*</Action>*
*<Transition to='End'/>*
*</Activity>*
*<Activity id='2' name='end'>*
*<WorkflowEditor x='428' y='275'/>*
*</Activity>*
*</WFProcess>*
*</Extension>*
*<MemberObjectGroups>*
*<ObjectRef type='ObjectGroup' id='#ID#Top' name='Top'/>*
*</MemberObjectGroups>*
*</TaskDefinition>*
I am not sure if my syntax is correct?
Any tips?Thanks again, sbalu.
I may have found the error (although, I don't understand what it means).
Something about *"Missing View"*
Catalog#format() Entry locale=null, key=SES_WORKITEM_MISSING_VIEW, defVal=SES_WORKITEM_MISSING_VIEW
20091126 08:28:22.701 TaskThread(0x0052fecf) Catalog#format() Info parameters=null
20091126 08:28:22.701 TaskThread(0x0052fecf) Catalog#format() Info tmp=null
20091126 08:28:22.701 TaskThread(0x0052fecf) Catalog#format() Info pattern=Missing view id.
20091126 08:28:22.701 TaskThread(0x0052fecf) Catalog#format() Info msg=Missing view id.
20091126 08:28:22.701 TaskThread(0x0052fecf) Catalog#format() Exit returned= Missing view id.
20091126 08:28:23.092 TaskThread(0x0052fecf) DeferredScanner#addTaskResult() Entry name=Send Email Task, ti=TaskInstance:Send Email Task tdalton
20091126 08:28:23.092 TaskThread(0x0052fecf) Catalog#format() Entry locale=null, key=SES_WORKITEM_MISSING_VIEW, defVal=SES_WORKITEM_MISSING_VIEW
20091126 08:28:23.092 TaskThread(0x0052fecf) Catalog#format() Info parameters=null
20091126 08:28:23.092 TaskThread(0x0052fecf) Catalog#format() Info tmp=null
20091126 08:28:23.092 TaskThread(0x0052fecf) Catalog#format() Info pattern=Missing view id.
20091126 08:28:23.092 TaskThread(0x0052fecf) Catalog#format() Info msg=Missing view id.
20091126 08:28:23.092 TaskThread(0x0052fecf) Catalog#format() Exit returned= Missing view id.
20091126 08:28:23.092 TaskThread(0x0052fecf) DeferredScanner#addTaskResult() Exit void
20091126 08:28:23.092 TaskThread(0x0052fecf) DeferredScanner#launchTask() Data executeOnce= false
20091126 08:28:23.092 TaskThread(0x0052fecf) DeferredScanner#launchTask() Exit returned= false
20091126 08:28:23.092 TaskThread(0x0052fecf) DeferredScanner#processTrigger() Exit returned= false
20091126 08:28:23.092 TaskThread(0x0052fecf) DeferredScanner#endObject() Entry no args
20091126 08:28:23.092 TaskThread(0x0052fecf) DeferredScanner#endObject() Exit void
20091126 08:28:23.092 TaskThread(0x0052fecf) DeferredScanner#processObject() Exit returned= false
20091126 08:28:23.092 TaskThread(0x0052fecf) DeferredScanner#processDeferredTasks() Data idOrName== #ID#6BF7-:B3702F65421:491FD113-:D0E4376B71977D1D
20091126 08:28:23.092 TaskThread(0x0052fecf) DeferredScanner#processDeferredTasks() Data nameOrId== ukaila
20091126 08:28:23.123 TaskThread(0x0052fecf) DeferredScanner#processDeferredTasks() Data object lastMod= 24
20091126 08:28:23.123 TaskThread(0x0052fecf) DeferredScanner#processObject() Entry obj=User:ukaila
20091126 08:28:23.123 TaskThread(0x0052fecf) DeferredScanner#processObject() Data tasks= [ { accountId=ukaila, task=Send Email Task, name=Send Email Task, date=11/25/2009 11:15:00 } ]
20091126 08:28:23.123 TaskThread(0x0052fecf) DeferredScanner#processObject() Data task list object= { accountId=ukaila, task=Send Email Task, name=Send Email Task, date=11/25/2009 11:15:00 }
20091126 08:28:23.123 TaskThread(0x0052fecf) DeferredScanner#processTrigger() Entry obj=User:ukaila, trig={ accountId=ukaila, task=Send Email Task, name=Send Email Task, date=11/25/2009 11:15:00 }
20091126 08:28:23.123 TaskThread(0x0052fecf) DeferredScanner#processTrigger() Data start= 11/25/09 11:15 AM
20091126 08:28:23.123 TaskThread(0x0052fecf) DeferredScanner#processTrigger() Data _now= 11/26/09 8:28 AM
20091126 08:28:23.123 TaskThread(0x0052fecf) DeferredScanner#processTrigger() Data task definition= CSC Send Email Task
20091126 08:28:23.123 TaskThread(0x0052fecf) DeferredScanner#startObject() Entry obj=User:ukaila
20091126 08:28:23.123 TaskThread(0x0052fecf) DeferredScanner#startObject() Entry type=User, nameOrId=ukaila
20091126 08:28:23.123 TaskThread(0x0052fecf) DeferredScanner#startObject() Exit void
20091126 08:28:23.123 TaskThread(0x0052fecf) DeferredScanner#startObject() Exit void
20091126 08:28:23.123 TaskThread(0x0052fecf) DeferredScanner#processTrigger() Data task template= null
20091126 08:28:23.123 TaskThread(0x0052fecf) DeferredScanner#processTrigger() Data task definition= TaskDefinition:Send Email Task
20091126 08:28:23.123 TaskThread(0x0052fecf) DeferredScanner#processTrigger() Data task template= TaskTemplate:null
20091126 08:28:23.123 TaskThread(0x0052fecf) DeferredScanner#launchTask() Entry obj=User:ukaila, trig={ accountId=ukaila, task=Send Email Task, name=Send Email Task, date=11/25/2009 11:15:00 }, tt=TaskTemplate:null
20091126 08:28:23.123 TaskThread(0x0052fecf) DeferredScanner#launchTask() Data taskName= null
20091126 08:28:23.123 TaskThread(0x0052fecf) DeferredScanner#launchTask() Data generated taskName= Send Email Task ukaila
20091126 08:28:23.123 TaskThread(0x0052fecf) TaskTemplate#setTaskName(String) Entry no args
20091126 08:28:23.123 TaskThread(0x0052fecf) TaskTemplate#setTaskName(String) Exit void
20091126 08:28:23.123 TaskThread(0x0052fecf) DeferredScanner#launchTask() Data orgName= null
20091126 08:28:23.123 TaskThread(0x0052fecf) DeferredScanner#launchTask() Data owner= null
20091126 08:28:23.123 TaskThread(0x0052fecf) DeferredScanner#launchTask() Data subjectLength= 29,650
20091126 08:28:23.123 TaskThread(0x0052fecf) XmlObjectFactory#create(Element) Entry element=[Map: null]
20091126 08:28:23.123 TaskThread(0x0052fecf) XmlObjectFactory#getConstructor() Entry element=[Map: null]
20091126 08:28:23.123 TaskThread(0x0052fecf) XmlObjectFactory#getConstructor() Info elname=Map
20091126 08:28:23.123 TaskThread(0x0052fecf) XmlObjectFactory#getConstructor() Info classAtt=null
20091126 08:28:23.123 TaskThread(0x0052fecf) XmlObjectFactory#getConstructor() Info classAtt=null
20091126 08:28:23.123 TaskThread(0x0052fecf) XmlObjectFactory#getConstructor() Info regName=Map
20091126 08:28:23.123 TaskThread(0x0052fecf) XmlObjectFactory#getConstructor() Exit returned= com.waveset.util.XmlObjectFactory$Registration@1edf84f
20091126 08:28:23.123 TaskThread(0x0052fecf) XmlObjectFactory#create(Element) Info handler=com.waveset.util.XmlHashMap@493dca
20091126 08:28:23.123 TaskThread(0x0052fecf) XmlObjectFactory#create(Element) Entry element=[Locale: null]
20091126 08:28:23.123 TaskThread(0x0052fecf) XmlObjectFactory#getConstructor() Entry element=[Locale: null]
20091126 08:28:23.123 TaskThread(0x0052fecf) XmlObjectFactory#getConstructor() Info elname=Locale
20091126 08:28:23.123 TaskThread(0x0052fecf) XmlObjectFactory#getConstructor() Info classAtt=null
20091126 08:28:23.123 TaskThread(0x0052fecf) XmlObjectFactory#getConstructor() Info classAtt=null
20091126 08:28:23.123 TaskThread(0x0052fecf) XmlObjectFactory#getConstructor() Info regName=Locale
20091126 08:28:23.123 TaskThread(0x0052fecf) XmlObjectFactory#getConstructor() Exit returned= com.waveset.util.XmlObjectFactory$Registration@77a748
20091126 08:28:23.123 TaskThread(0x0052fecf) XmlObjectFactory#create(Element) Info handler=com.waveset.util.XmlLocale@1876e5d
20091126 08:28:23.123 TaskThread(0x0052fecf) XmlObjectFactory#create(Element) Exit returned= en_US -
How to view Tidal Job output in a query?
I am using a query to extract the standard output of a job:
select jobrun_id, dbms_lob.substr( jobrun_output, 4000, 1 )
from tidal.joboutput
where jobrun_id = 686361;
The query returns output in an XML format:
<TESXOUTPUT><MSG>Job output data is in XML format. To view job output upgrade your Client to latest version.</MSG><OUTPUT COMP="Y" RUN="1">eJzFVltv2zYUftevOBhQpB1CxXZuDQMXkC9...
How can I translate this output into readable text?
Thanks.I was running the REST api command to get the job output and received the same result as you. I found a method in the documentation that allows you to get the output in readable form.
Here it is:
JobOutput.getOutputContent/id
where id is the job run id
Hope that helps :) -
I can not open a picture cd with photos in jpg format, error msg is that the photos are in an unrecognised format
Drag a couple of images from the CD to the Desktop. Can you import them from there?
-
Who is the caller and who is the callee in this callback pattern?
Hi,
Could someone tell me which method is the caller and which is the callee in the following code? Please be as detailed as possible in your explanation.
Thank you in advance!
public class TimePrinter implements ActionListener {
public void actionPerformed(ActionEvent evt) {
Date now = new Date();
System.out.println("At the tone, the time is " + now);
Toolkit.getDefaultToolkit().beep();
public class TimerTest {
public static void main(String[] args) {
ActionListener listener = new TimePrinter();
int delay = 10000; //Delays 10 seconds
//Constructs a timer that calls the listener once every 10 seconds.
Timer t = new Timer(delay, listener);
t.start();
JOptionPane.showMessageDialog(null, "Quit program?");
System.exit(0);
}jverd,
Thank you again for responding to this thread!
Here is the code:
//TimePrinter.java
import java.util.*;
import java.awt.*;
import java.awt.event.*;
public class TimePrinter implements ActionListener {
public void actionPerformed(ActionEvent evt) {
Date now = new Date();
System.out.println("At the tone, the time is " + now);
Toolkit.getDefaultToolkit().beep();
//TimerTest.java
import java.awt.event.*;
import javax.swing.*;
import javax.swing.Timer;
import java.util.*;
import java.awt.*;
public class TimerTest {
public static void main(String[] args) {
ActionListener listener = new TimePrinter();
int delay = 10000; //Delays 10 seconds
//Constructs a timer that calls the listener once every 10 seconds.
Timer t = new Timer(delay, listener);
t.start();
JOptionPane.showMessageDialog(null, "Quit program?");
System.exit(0);
}Prior to posting to this forum, I actually have done some research and learned the following:
"A callback in programming is executable code that is passed as an argument to other code. "
With this definition, in the above example "actionPerformed" in the TimePrinter class is the executable code, it's being passed to Timer(delay, listener). So the caller here is Timer(delay, listener), callee is the actionPerformed() method, as it is the method that is being called. This is how I interpret it. Am I correct? My question is still which is the caller and callee in this example.
Note, I don't come here often and didn't even know that you could format the text. I formated my msg as you requested, don't know how the text will turn out.
Regards,
Eric
One more question: I tried formatting by placing my code like this my source, what it did is to place the text in a blue area but didn't indent like the source did (I manually indented it). How do I keep the format as the original code?
Edited by: ericdunn on Jul 29, 2009 12:40 PM
Edited by: ericdunn on Jul 29, 2009 12:45 PM -
Hi
I bought new Macbook Air. Following problems i have with Microsoft Office 2011 (probably they related to Lion)
1) Microsoft Word. Try to open a word file. But no russian font was shown on screen. It is shown only some symbols.
Huge problem for me
Where i should use encoding or font drivers for Lion and Word
Finally, i managed to open file by text edit, but text edit is not suitable for me
2) Microsoft Excel
My macbook air has been freezed due to some reason. After i restarted i didnt found excel workbook that i was working on.
I know it should be autosave but i din't find it. And it didn't save it
3) Microsoft Outlook
First i received message. It has blue page color and has attachement.
But when i open message i can not find attachments. So on usual message (without specific format) i can find attachments but when sender has some user format (coloured msg or etc) attachments are not available
4) Microsoft outlook
I want to put task. But when i press ok, message closed and i can not see this task in my task list. So tasks are not working at all
Please help me in resolving this issues, as they are quite important.The best place to search/ask about those apps is often in the forums run by the people who make them:
http://answers.microsoft.com/en-us/mac/forum -
Hi,
I would like to dissect some packets in Java, specifically SIP and RTP packets.
I have used jpcap to sniff the packets off the network and the contents of the packet are placed in a byte array.
Does anyone have an idea of how to split this packet up so for example I can see what codecs have been specified, ip source and destination address etc.
I tried looking at the C source code of Wireshark to give me an idea but it seemed pretty complicated.
Any suggestions welcome.I have read the specs thanks! I am a java n00b though
so i repeat the "How can i search through a byte
array looking for when to start and stop?" part of
question!
And again this has nothing to do with java. I have done this is C, C++, java, SQL and perl.
A simple protocol definition would be as follows
4 byte msg type
<data>
Format for Msg type = 'abcd'
2 byte int
2 byte data length
<data>
1 byte checksum
Format for Msg type = 'XXXX'
4 byte data length
<data>
1 byte checksum
The above defines the contents of messge which are significantly different depending on the needs of the messge. Both have variable data and both completely define how one needs to extract that information (excluding various misc things like endianess and character sets.)
The protocol defines how you extract the data and what it means.
Generally code based on that can be constructed (and ony constructed) using ifs and for loops. If you are unfamilar with those constructs then you might wish to choose another project. Other than that you start at the beginning of the message (as defined by the protocol) and work you way to the end.
Maybe you are looking for
-
How to restore ITunes Library from Backup hard drive?
My computer crashed. I restored it -- but ITunes was wiped clean. I have all my music files and ITunes Library backed up on an external hard drive. How do I get the library from the external drive back to the computer with playlists, artwork and all
-
Cannot view cr2 files in Bridge cs4 & Windows 7
I can not convert the cr2 files in cs4 nor read them with new Windows 7 Home Edition 64 bit computer Upon downloading from my camera I am unable to view the images. After downloading the file, when clicking on the file in Bridge t
-
Oracle client 10.1.0.3.0 connection troubles
Hello, I have succesfully installed an Oracle client on a linux machine, but I can not connect to a server. I keep getting the well-known ORA-12154 error (TNS could not resolve the connect identifier specified). First i thought it would be a problem
-
Photoshop CS6 3D menu grey out
Hi everyone. I am now trying to use photoshop CS6 3D features. And I found out that no matter what I select, the 3D menu is still grey out. What should I do to solve this? I see some of you said that your 3D menu is missing because of the graphic car
-
Dvd burning from idvd with strange results
I have made a short 5 minute movie in FCP and exported it to QuickTime as I have done numerous times before. I created a menu in IDVD and then dragged QT file in. Everything looks great and plays on screen great. Then I burn the DVD. Once done I put