Idoc programming question
Hi friends,
I am asked to write a custom executable program (not a function module) to create outbound idocs with some data from the database tables as for the selection screen data the user entered. How do I do this and how to trigger these outbound idocs? Can you please give me a sample code for this or your valuable suggestions?
Thanks for the help.
Here is the sample code which triggers the IDoc (Outbound)..I also added comments
report z_idoc_creat_tr .
tables : ekpo,
edidd, " Data record (IDoc)
tbdlst, " Text for logical system
edmsg . "Logical message types
* Selection screen
parameters: p_ebeln like ekpo-ebeln.
data : c_seg1 like edidd-segnam value 'ZSEG1_TR',
c_seg2 like edidd-segnam value 'ZSEG2_TR',
itab_comm_idocs like edidc occurs 0 with header line ,
control_record like edidc.
*Internal Tables
data :
itab_edidd like edidd occurs 0 with header line, "Data record(IDoc)
itab_seg2 like zseg2_tr occurs 0 with header line .
* zseg2_tr structure generated when you define the Segments in WE31
* Work Area
data : seg1 like zseg1_tr, " Segments Header Data
seg2 like zseg2_tr. " Segments
select single * from ekpo where ebeln = p_ebeln.
*Build Control Data
control_record-mestyp = 'Z_EKPO' . "Message Type.
control_record-idoctp = 'ZIDOC_TR' ." IDoc Type
control_record-sndprt = 'LS'.
control_record-sndprn = 'LOGSYS0100' . " Logical system
control_record-sndpor = 'SAPLT1'. "SEnder Port
control_record-rcvprt = 'LS'.
control_record-rcvprn = 'SEND' ." Reveiver Logical system
control_record-rcvpor = 'A000000171'." Receiver Port
*Filling the Segment 1 ie.,Purchasing Document Number .
move-corresponding ekpo to seg1.
itab_edidd-segnam = 'ZSEG1_TR'." Segment Name
itab_edidd-sdata = seg1. " Value for the Segment1. "Segment value
append itab_edidd .
clear itab_edidd.
*Filling the Segment 2 ie.,Item Number of Purchasing Document.
select * from ekpo into corresponding fields of table itab_seg2 where
ebeln = p_ebeln .
loop at itab_seg2 .
move-corresponding itab_seg2 to seg2.
itab_edidd-segnam = 'ZSEG2_TR'.
itab_edidd-sdata = seg2.
append itab_edidd.
clear itab_edidd.
endloop.
* FM to trigger the Outbound Idoc
call function 'MASTER_IDOC_DISTRIBUTE'
exporting
master_idoc_control = control_record
tables
communication_idoc_control = itab_comm_idocs
master_idoc_data = itab_edidd
exceptions
error_in_idoc_control = 1
error_writing_idoc_status = 2
error_in_idoc_data = 3
sending_logical_system_unknown = 4
others = 5
if sy-subrc <> 0.
endif.
loop at itab_comm_idocs.
write:/2 'Docs generated', itab_comm_idocs-docnum.
endloop.
<i>* Reward each useful answer</i>
Raja T
Message was edited by:
Raja Thangamani
Similar Messages
-
Standard IDOCS, Programs for posting FI & bank related data.
Hi,
(1)Are there any idocs available for posting FI documents, Vendor master?
(2)Are there any outbound idocs, programs for sending data to banks. EG:positive pay etc?
Kindly reply to these questions. Correct answer will be awarded points.
Regards,
Akshaya.Hi,
There is message type BANK_CREATE for posting the FI related Bank details. Using the change pointers you can trigger the idocs for posting the bank related data.
Regards,
Uday -
Steps to write Inbound Idoc program
Hi All
can any body send me steps to write sample inbound idoc program
1) from which tables i have to fetch data.
2) wat should be the status before processing idoc and wat is the expected status.
Like a complete real time program with explanation.
along with program.
Thanks & Regards,
VinayU have to transfer the inbound idoc to the o.s.layer.
Then u have to sen via EDI subsystem to the Business partner.
U have to carry out the same steps u will do in EDI outbound process..
Reward if helpful. -
Hi
I have a programming question here. I spent a lot of time doing it, but I still can't get it. Here is the question :
Write a method called countTo that takes one integer as a parameter and prints a
comma-separated list of the numbers from 1 to the value of the parameter, or an
appropriate error message if the parameter is less than one. In either case (if a list
of numbers is printed, or an error message is printed), after printing, the cursor
should be advanced to the next line.
For example, if the parameter has a value of 1, the method should just print the
the value 1 to the screen followed by a new-line character. If parameter has a value
of 5, the method should print the following (exactly as shown, make sure there is
no comma after the last value, and that all values are on one line with no spaces
between them):
1,2,3,4,5
This method should only print to the screen, and should not return a value.I have a programming question here. I spent a lot of
time doing it, but I still can't get it. Please post what you have done so far. -
I want to run one IDOC program how to run
Iam having one sales order idoc program
I want to run one IDOC program how to run.
That is sales order
idoc number: XXXXXXXX
idoc type: SDPICK (message)
idoc status: 64
direction: inbound
Tell me the process plz.Hi,
goto we19 ,give ur idoc number and then execute it and then in the next screen press on inbound fucntion module,give the Fm name thre andpress enter..it will be processed.
else
use program RBDAPP01 and thre specify the idoc number
else
use TCODE ->BD87 ..
Rewrad if helpful.
Regards,
Nagaraj -
Material for ale,idoc programming
Hi folks,
i need urgently the material for IDOC programming.i am mentioning the process below.
1)i have created one program. i need to send some fields to a folder through IDOCS.
when i will press a push button on my program, this idoc program should execute so that some of the fields will transfer through IDOCS.
Thankshi,
Intermediate Documents (IDOCs)
An IDoc is simply a data container that is used to exchange information between any two processes that can understand the syntax and semantics of the data.
The two available process for IDOCs are 1) Outbound Process 2) Inbound Process.
There are basically two types of IDOCs.:
1. Basic IDOC type defines the structure and format of the business document that is to be
exchanged between two systems.
2. Extension Idoc: Extending the functionality by adding more segments to existing Basic IDOCs.
-To Create Idoc we need to follow these steps:
1. Create Segment ( WE31)
2. Create Idoc Type ( WE30)
3. Create Message Type ( WE81)
4. Assign Idoc Type to Message Type ( WE82)
1. Creating a Segment:
nGo to transaction code WE31
nEnter the name for your segment type and click on the Create icon
nType the short text
nEnter the variable names and data elements
nSave it and go back
nGo to Edit -> Set Release
nFollow steps to create more number of segments
2. Create Idoc Type (WE30)
nGo to transaction code WE30
nEnter the Object Name, select Basic type and click Create icon
nSelect the create new option and enter a description for your basic IDOC type and press enter
nSelect the IDOC Name and click Create icon
nThe system prompts us to enter a segment type and its attributes
nChoose the appropriate values and press Enter
nThe system transfers the name of the segment type to the IDOC editor.
nFollow these steps to add more number of segments to Parent or as Parent-child relation
nnSave it and go back
nnGo to Edit -> Set release
3. Create Message Type (WE81)
nGo to transaction code WE81
nChange the details from Display mode to Change modenAfter selection, the system will give this message The table is cross-client (see Help for further info). Press EnternClick New Entries to create new Message Type
nFill details
nSave it and go back
4. Assign Idoc Type to Message Type (WE82)
nGo to transaction code WE82
nChange the details from Display mode to Change moden After selection, the system will give this message The table is cross-client (see Help for further info). Press Enter.
nClick New Entries to create new Message Type.
nFill details
nSave it and go back
There are three types of records :
nControl Record nData Record nStatus Record
Control Record - contains the key information like destination, IDoc type, message type, port and sender information. Control records are of EDIDC type of structure.
Data Records - This contains two parts.
nAdministrative Section and Data Section
nAdministrative Section consists of Idoc number, Segment Name, Segment number, Version, Segment Hierarchy etc.
nData Section contains the data of respective segment
nData records are of EDIDD type of structure
nStatus Record - whenever a process is taken place, system will generate status records.
nWe can identify the process with the number of status record.
n01 - 49 for Outbound Process
n50 - 75 for Inbound Process
nwhen IDoc is processed the messages are:
n01 - IDoc is created
n30 - IDoc is ready for dispatch
n03 - IDoc is processed
check all the below links u will find lot of info
http://www.sapgenie.com/sapgenie/docs/ale_scenario_development_procedure.doc
For ALE -- IDoc's
http://www.sappoint.com/abap/ale.pdf
http://www.sappoint.com/abap/ale2.pdf
ALE/ IDOC/EDI
http://help.sap.com/saphelp_erp2004/helpdata/en/dc/6b835943d711d1893e0000e8323c4f/content.htm
http://www.sapgenie.com/sapgenie/docs/ale_scenario_development_procedure.doc
http://edocs.bea.com/elink/adapter/r3/userhtm/ale.htm#1008419
http://www.netweaverguru.com/EDI/HTML/IDocBook.htm
http://www.sapgenie.com/sapedi/index.htm
http://www.sapgenie.com/sapedi/idoc_abap.htm
http://help.sap.com/saphelp_erp2005/helpdata/en/0b/2a60bb507d11d18ee90000e8366fc2/frameset.htm
http://help.sap.com/saphelp_erp2005/helpdata/en/78/217da751ce11d189570000e829fbbd/frameset.htm
http://www.allsaplinks.com/idoc_sample.html
http://www.sappoint.com/abap.html
http://help.sap.com/saphelp_erp2004/helpdata/en/dc/6b835943d711d1893e0000e8323c4f/content.htm
http://www.sapgenie.com/sapgenie/docs/ale_scenario_development_procedure.doc
http://edocs.bea.com/elink/adapter/r3/userhtm/ale.htm#1008419
ALE/ IDOC/ XML
http://www.sapgenie.com/sapgenie/docs/ale_scenario_development_procedure.doc
http://www.thespot4sap.com/Articles/SAP_XML_Business_Integration.asp
http://help.sap.com/saphelp_srm30/helpdata/en/72/0fe1385bed2815e10000000a114084/content.htm
http://www.angeli.biz/www5/books/IDocBook/IDocBook.pdf
IDOC Convertion
/people/kevin.wilson2/blog/2005/12/07/changing-fields-in-an-idoc-segment
~~Guduri -
Need Ebook for ALE/IDOC Programming
Hi All,
I am new to IDOC programming. I want a technical book for the coding purpose. Can anybody post a link for any good book. I have read functional side so plz.. post links only for technical coding things.
Useful links will get rewarded.
Thanks in advance,
Jignesh.Below is the Complete link for ABAP and other related stuffs.
http://cma.zdnet.com/book/abap/index.htm
http://www.sapdevelopment.co.uk/
http://www.sap-img.com/
http://juliet.stfx.ca/people/fac/infosys/abap.htm
http://help.sap.com/saphelp_46c/helpdata/en/d3/2e974d35c511d1829f0000e829fbfe/frameset.htm
http://help.sap.com/saphelp_46c/helpdata/en/d6/0db357494511d182b70000e829fbfe/frameset.htm
http://www.henrikfrank.dk/abapexamples/SapScript/sapscript.htm
http://www.sapgenie.com/abap/example_code.htm
http://www.geocities.com/SiliconValley/Campus/6345/abapindx.htm
http://help.sap.com/printdocu/core/Print46c/en/Data/Index_en.htm
http://help.sap.com/saphelp_40b/helpdata/en/4f/991f82446d11d189700000e8322d00/applet.htm
http://www.sap-img.com/abap-function.htm
http://www.sapgenie.com/abap/code/abap19.htm
http://www.sap-img.com/abap/more-than-100-abap-interview-faqs.htm
http://www.planetsap.com/Tips_and_Tricks.htm
http://help.sap.com/saphelp_40b/helpdata/ru/d6/0dc169494511d182b70000e829fbfe/applet.htm
http://www.henrikfrank.dk/abapexamples/SapScript/symbols.htm
http://www.henrikfrank.dk/abapexamples/index.html
http://sap.ittoolbox.com/documents/document.asp?i=752
http://members.aol.com/_ht_a/skarkada/sap/
http://sappoint.com/abap/
http://members.tripod.com/abap4/SAP_Functions.html
http://members.ozemail.com.au/~anmari/sap/index.html
http://www.planetsap.com/Userexit_List.htm
http://www.planetsap.com/Tips_and_Tricks.htm
http://www.kabai.com/abaps/q.htm
http://www.planetsap.com/Userexit_List.htm
http://help.sap.com/saphelp_bw21c/helpdata/en/c4/3a8090505211d189550000e829fbbd/frameset.htm
http://www.sapgenie.com/abap/bapi/example.htm
http://help.sap.com/saphelp_45b/helpdata/en/65/897415dc4ad111950d0060b03c6b76/content.htm
http://www.sap-basis-abap.com/index.htm
http://help.sap.com/saphelp_40b/helpdata/en/fc/eb2c46358411d1829f0000e829fbfe/frameset.htm
http://help.sap.com/saphelp_46c/helpdata/en/aa/aeb23789e95378e10000009b38f8cf/frameset.htm
http://www.geocities.com/ResearchTriangle/1635/system.html
http://www.sapdesignguild.org/resources/MiniSG/3_Managing/3_Functions_Table_Control.htm
http://help.sap.com/saphelp_45b/helpdata/en/d1/801bdf454211d189710000e8322d00/content.htm
http://www.sapfans.com/sapfans/repos/saprep.htm
http://www.planetsap.com/howdo_a.htm
http://help.sap.com/saphelp_util464/helpdata/en/69/c2516e4ba111d189750000e8322d00/content.htm
http://www.sapgenie.com/abap/smartforms_detail.htm
http://www.sap-img.com/abap.htm
http://help.sap.com/saphelp_46c/helpdata/en/fc/eb2d67358411d1829f0000e829fbfe/content.htm
http://www.geocities.com/victorav15/sapr3/abap.html
http://www.henrikfrank.dk/abapexamples/SapScript/sapscript.htm
http://abap4.tripod.com/Other_Useful_Tips.html
http://help.sap.com/saphelp_45b/helpdata/en/cf/21ee2b446011d189700000e8322d00/content.htm
http://www.sap-basis-abap.com/sapmm.htm
http://sap.ittoolbox.com/nav/t.asp?t=303&p=448&h1=303&h2=322&h3=448
http://sapfans.com/
http://cma.zdnet.com/book/abap/ch03/ch03.htm
http://help.sap.com/saphelp_40b/helpdata/en/4f/991f82446d11d189700000e8322d00/applet.htm
http://sappoint.com/abap/
http://www.henrikfrank.dk/abapuk.html
http://www.sts.tu-harburg.de/teaching/sap_r3/ABAP4/abapindx.htm
http://www.sapgenie.com/abap/index.htm
http://www.sap-img.com/abap.htm
http://www.sapdevelopment.co.uk/tips/tipshome.htm
http://help.sap.com/printdocu/core/Print46c/en/Data/Index_en.htm
http://sap.ittoolbox.com/nav/t.asp?t=322&p=322&h1=322
http://sap.ittoolbox.com/nav/t.asp?t=448&p=448&h1=448
http://www.thespot4sap.com/
http://www.kabai.com/abaps/q.htm
http://www.geocities.com/mpioud/Abap_programs.html
http://www.sapgenie.com/abap/tips_and_tricks.htm
http://www.sapassist.com/code/d.asp?whichpage=1&pagesize=10&i=10&a=c&o=&t=&q=&qt=
For FAQ
http://www.sap-img.com/abap/more-than-100-abap-interview-faqs.htm
http://www.sapgenie.com/faq/abap.htm
BAPI-step by step
http://www.sapgenie.com/abap/bapi/example.htm
Weblog for receive email and processing it through ABAP
/people/thomas.jung3/blog/2004/09/09/receiving-e-mail-and-processing-it-with-abap--version-610-and-higher
For Logical database
http://help.sap.com/saphelp_46c/helpdata/en/9f/db9bed35c111d1829f0000e829fbfe/frameset.htm
very useful
http://help.sap.com/saphelp_46c/helpdata/EN/35/2cd77bd7705394e10000009b387c12/frameset.htm
Useful link to websites
http://www.hernangn.com.ar/sap.htm
Useful for background
http://www.sappoint.com/basis/bckprsng.pdf
http://help.sap.com/saphelp_nw04/helpdata/en/6f/08703713bf277ee10000009b38f8cf/frameset.htm
http://publib.boulder.ibm.com/infocenter/wbihelp/index.jsp?topic=/com.ibm.wbix_adapters.doc/doc/mysap4/sap4x41.htm
Table control in BDC
http://www.sap-img.com/abap/bdc-example-using-table-control-in-bdc.htm
For posting weblog,
/people/sap.user72/blog/2005/06/28/sdn-weblogs-making-it-easier
Dynamic Internal table -weblog in sdn
/people/subramanian.venkateswaran2/blog/2004/11/19/dynamic-internal-table
Smartforms
http://www.sap-basis-abap.com/sapsf001.htm
http://www.sap-press.com/downloads/h955_preview.pdf
http://www.ossincorp.com/Black_Box/Black_Box_2.htm
http://www.sap-img.com/smartforms/sap-smart-forms.htm
How to trace smartform
http://help.sap.com/saphelp_47x200/helpdata/en/49/c3d8a4a05b11d5b6ef006094192fe3/frameset.htm
Workflow
http://www.sap-img.com/workflow/sap-workflow.htm
http://help.sap.com/saphelp_47x200/helpdata/en/a5/172437130e0d09e10000009b38f839/frameset.htm
For examples on WorkFlow...check the below link..
http://help.sap.com/saphelp_47x200/helpdata/en/3d/6a9b3c874da309e10000000a114027/frameset.htm
http://help.sap.com/printdocu/core/Print46c/en/data/pdf/PSWFL/PSWFL.pdf
http://help.sap.com/saphelp_47x200/helpdata/en/4a/dac507002f11d295340000e82dec10/frameset.htm
http://www.workflowing.com/id18.htm
http://www.e-workflow.org/
http://web.mit.edu/sapr3/dev/newdevstand.html
ALV
http://www.geocities.com/mpioud/Abap_programs.html
Mail
http://www.geocities.com/mpioud/Z_EMAIL_ABAP_REPORT.html
http://www.thespot4sap.com/Articles/SAP_Mail_SO_Object_Send.asp
http://www.sapdevelopment.co.uk/reporting/email/attach_xls.htm
BOM Explosion
/people/prakash.singh4/blog/2005/05/15/explode-boms-in-enterprise-portal-using-htmlb-tree--part-1-abap
BOM
http://help.sap.com/saphelp_erp2005/helpdata/en/ea/e9b7234c7211d189520000e829fbbd/frameset.htm
http://help.sap.com/saphelp_erp2005/helpdata/en/d1/2e4114a61711d2b423006094b9d648/frameset.htm
http://www.sap-img.com/sap-sd/sales-bom-implementation.htm
http://www.sap-basis-abap.com/sappp007.htm
OLE
http://www.sapgenie.com/abap/ole.htm
http://help.sap.com/saphelp_46c/helpdata/en/59/ae3f2e488f11d189490000e829fbbd/frameset.htm
ALVGRID with refresh
http://www.geocities.com/mpioud/Z_DEMO_ALV_REFRESH_BUTTON.html
For language setting and decimal separator
/people/horst.keller/blog/2004/11/16/abap-geek-7-150-babylonian-confusion
Oracle queries
http://sqlzoo.net/
To format SQL
http://www.sqlinform.com/
SCOT settings
http://www.sap-img.com/basis/basis-faq.htm
Status Icon [ALV,Table Control,Tab Strip]
http://www.sapdesignguild.org/resources/MiniSG-old/from_develop/norm_status_icons.htm#positioning_4
ALV Group Heading
http://www.sap-img.com/fu037.htm
For multiMedia
/people/thomas.jung3/blog/2005/05/11/using-classic-activex-controls-in-the-abap-control-framework
Uploading LOGO in SAP
http://www.sap-img.com/ts001.htm
LSMW
http://www.sap-img.com/sap-data-migration.htm
http://www.sapgenie.com/saptech/lsmw.htm
http://sapabap.iespana.es/sapabap/manuales/pdf/lsmw.pdf
http://www.sap.info/public/INT/int/glossary/int/glossaryletter/Word-17643ed1d6d658821_glossary/L#Word-17643ed1d6d658821_glossary
Here are the two links which contains lots of PDFS:
http://www.easymarketplace.de/online-pdfs-q-s.php
http://www.consolut.de/saphelp/sap_online_help.html
All the best!!
REgards,
Abdul -
Hi All
i have a requirement where i have to design a screen program to provide the user with a input screen. The user will input data on this screen, after the user enters the data and clicks on execute or some button on the module screen the system must generate a IDOC in the system. This IDOC will be picked up from another program within the same system.The reason we are doing this is the other program cannot be changed and it can accept only an IDOC from the external system which we are going to eliminate.
My Questions:
1. What are the steps in this requirement
2. Do we require the partner profile and port and logical system definition as i am going to create a IDOC in the same system.( i am not sending the IDOC out of the system)
3. Can i use the MASTER_IDOC_DISTRIBUTE FM to create a IDOC in the database?
4. Can i use IDOC_CREATE_ON_DATABASE FM to do the same job?
please guide me with deatils on how to go about this. Thanks
~SureshHi Suresh,
First try to create a Module pool program.
Assign the tcode to the IDOC.
or else get the data into IDOC segment and try to transfer it.
Creation of IDoc
To Create Idoc we need to follow these steps:
Create Segment ( WE31)
Create Idoc Type ( WE30)
Create Message Type ( WE81)
Assign Idoc Type to Message Type ( WE82)
Creating a Segment
Go to transaction code WE31
Enter the name for your segment type and click on the Create icon
Type the short text
Enter the variable names and data elements
Save it and go back
Go to Edit -> Set Release
Follow steps to create more number of segments
Create IDOC Type
Go to transaction code WE30
Enter the Object Name, select Basic type and click Create icon
Select the create new option and enter a description for your basic IDOC type and press enter
Select the IDOC Name and click Create icon
The system prompts us to enter a segment type and its attributes
Choose the appropriate values and press Enter
The system transfers the name of the segment type to the IDOC editor.
Create IDOC Type
Follow these steps to add more number of segments to Parent or as Parent-child relation
Save it and go back
Go to Edit -> Set release
Create Message Type
Go to transaction code WE81
Change the details from Display mode to Change mode
After selection, the system will give this message The table is cross-client (see Help for further info). Press Enter
Click New Entries to create new Message Type
Fill details
Save it and go back
Assign Message Type to IDoc Type
Go to transaction code WE82
Change the details from Display mode to Change mode
After selection, the system will give this message The table is cross-client (see Help for further info). Press Enter.
Click New Entries to create new Message Type.
Fill details
Save it and go back
u can also check all these links related to idocs
http://www.allsaplinks.com/idoc_sample.html
http://www.allsaplinks.com/
http://www.sap-img.com/
http://www.sappoint.com/abap.html
http://help.sap.com/printdocu/core/Print46c/en/data/pdf/BCMIDALEIO/BCMIDALEIO.pdf
http://help.sap.com/printdocu/core/Print46c/en/data/pdf/BCMIDALEPRO/BCMIDALEPRO.pdf
http://help.sap.com/printdocu/core/Print46c/en/data/pdf/CABFAALEQS/CABFAALEQS.pdf
http://help.sap.com/printdocu/core/Print46c/en/data/pdf/BCSRVEDISC/CAEDISCAP_STC.pdf
http://help.sap.com/printdocu/core/Print46c/en/data/pdf/BCSRVEDI/CAEDI.pdf
http://help.sap.com/saphelp_erp2004/helpdata/en/dc/6b835943d711d1893e0000e8323c4f/content.htm
http://www.sapgenie.com/sapgenie/docs/ale_scenario_development_procedure.doc
http://edocs.bea.com/elink/adapter/r3/userhtm/ale.htm#1008419
http://www.netweaverguru.com/EDI/HTML/IDocBook.htm
http://www.sapgenie.com/sapedi/index.htm
http://expertanswercenter.techtarget.com/eac/knowledgebaseCategory/0,295197,sid63_tax296858_idx0_off50,00.html
http://sap.ittoolbox.com/documents/popular-q-and-a/extending-a-basic-idoc-type-2358
http://help.sap.com/saphelp_47x200/helpdata/en/dc/6b7eee43d711d1893e0000e8323c4f/frameset.htm
/thread/199996 [original link is broken]
Regards,
Priyanka. -
Misc Basic PL/SQL Application Design/Programming Questions 101 (101.1)
---****** background for all these questions is at bottom of this post:
Question 1:
I read a little on the in and out parameters and that IN is "by reference" and OUT and IN-OUT are by value. To me "by reference" means "pointer" as in C programming. So it seems to me that I could call a function with an IN parameter and NOT put it on the right side of an assignment statement. In other words, I'm calling my function
get_something(IN p_test1 varchar2) return varchar2;
from SP1 which has a variable named V_TEST1.
So.... can I do this? (method A):
get_something(V_TEST1);
or do I have to do this (method B):
V_TEST1 := get_something(V_TEST1);
Also, although this may muddy the thread (we'll see), it seems to me that IN, since its by reference, will always be more efficient. I will have many concurrent users using this program: should this affect my thinking on the above question?
-- ******* background *******
So Far:<< I've read and am reading all over the net, read and reading oracle books from oracle (have a full safari account), reading Feurstein's tome, have read the faq's here.
Situation Bottom Line:<< Have an enormous amount to do in a very little time. Lots riding on this. Any and all pointers will be appreciated. After we get to some undetermined point I can re-do this venture as a pl/sql faq and submit it for posting (y'alls call). Some questions may be hare brained just because I'm freaking out a little bit.
Situation (Long Version):<< Writing a pl/sql backend to MS Reporting Services front end. Just started doing pl/sql about 2 months ago. Took me forever to find out about ref-cursor as the pipe between oracle and all client applications. I have now created a package. I've been programming for 20 years in many languages, but brand new to pl/sql. However, pl/sql sql has freed me from myriad of limitations in MS RS's. My program is starting to get big (for me -- I do a lot in a little) pks is currently 900 lines with 15 functions so far. Currently SP (pls) is back up to 800 lines. I get stuff working in the sp then turn it into a function and move it to the package.
What does application do?:<<<< Back End for MS Reporting Services Web front end. It will be a very controlled "ad-hoc" (or the illusion of ad-hoc) web interface. All sql queries are built at run-time and executed via "open ref cusor for -- sql statement -- end;" data returned via OUT ref_cursor. Goal is to have almost 100% of functionality in a package. Calling SP will be minimalist. Reporting Services calls the SP, passes X number of parameters, and gets the ref_cursor back.
Oracle Version: 10.2 (moving to 11g in the next 3 months).Environment: Huge DW in a massively shared environment. Everything is locked down and requires a formal request. I had to have my authenticated for a couple dbms system packages just to starting simple pl/sql programs.Brad Bueche wrote:
Question 1:
I read a little on the in and out parameters and that IN is "by reference" and OUT and IN-OUT are by value. To me "by reference" means "pointer" as in C programming. So it seems to me that I could call a function with an IN parameter and NOT put it on the right side of an assignment statement. The IN parameter is not passing by reference. It is passing by value. This means variable/value of the caller used as parameter, is copied to the (pushed) stack of code unit called.
An OUT parameter means that the value is copied from the called unit's stack to the caller (and the current value of the caller's variable is overwritten).
To pass by reference, the NOCOPY clause need to be used. Note that is not an explicit compile instruction. The PL/SQL engine could very well decide to pass by value and not reference instead (depending on the data type used).
Note that the ref cursor data type and the LOB data types are already pointers. In which case these are not passed reference as they are already references.
The NOCOPY clause only make sense for large varchar2 variables (these can be up to 32KB in PL/SQL) and for collection/array data type variables.
As for optimising PL/SQL code - there are a number of approaches (and not just passing by reference). Deterministic functions can be defined. PL/SQL code can be written (as pipelined tables) to run in parallel using the default Oracle Parallel Query feature. PL/SQL can be manually parallelised. Context switches to the SQL engine can be minimised using bulk processing. Etc.
Much of the performance will however come down to 2 basic issues. How well the data structures being processed are designed. How well the code itself is modularised and written. -
Hello All,
I have customized an oracle application program with xml publisher.The program prints the report in PDF format.
My questions is where this output copied in the server .I am not able to find the pdf report in $APPLCSF/out/.
Do i need to use XML bursting program to achieve this?If yes i am new to xml coding can anyone help in creating busting control file.
My object is to print the pdf report to unix server directory
THanksPl post details of OS, database and EBS versions.
>
My questions is where this output copied in the server .I am not able to find the pdf report in $APPLCSF/out/.
>
The xml and PDF output of concurrent programs should be available in $APPLCSF/$APPLOUT directory.
>
Do i need to use XML bursting program to achieve this?If yes i am new to xml coding can anyone help in creating busting control file.
>
Pl see if these links can help
http://blogs.oracle.com/xmlpublisher/2007/04/bursting_with_bip.html
http://blogs.oracle.com/xmlpublisher/2007/04/e_business_suite_bursting.html
>
My object is to print the pdf report to unix server directory
>
Pl clarify what you mean by this.
HTH
Srini -
Hello! Among the lab assignments I have done for my class, I have this calendar project I've been working on for a good while now. My only question is how do I set the days of the month properly with the empty columns I have encoded in the program? This is a long program and I really haven't put any time into making it look neat, so bare with me!
What I get so far in the interaction pane is:
March 2008
1 2 3
4 5 6 7 8 9 10
11 12 13 14 15 16 17
18 19 20 21 22 23 24
25 26 27 28 29 30 31
and what I'm looking for, obviously, is:
March 2008
1
2 3 4 5 6 7 8
9 10 11 12 13 14 15
16 17 18 19 20 21 22
23 24 25 26 27 28 29
30 31> Sometimes I over look something minor, but I'm stumped and this is the ONLY thing I have to do to finish this project!
/* Calendar Program that displays the days of the
* month between January 1800 to December 2099
import javax.swing.JOptionPane;
public class CalendarProgram
public static void main(String[] args)
String monthStr, yearStr, displayStr;
int year, firstTwoYear, lastTwoYear;
int daysinMonth = 0, dayofWeek = 0;
int firstDayofMonth = 1;
//asks user for input, and then checks if monthStr matches with the user, then displays it.
monthStr = JOptionPane.showInputDialog(null, "Please enter the month (e.g. January):");
if(monthStr.equals("January"))
displayStr = monthStr;
else
if(monthStr.equals("February"))
displayStr = monthStr;
else
if(monthStr.equals("March"))
displayStr = monthStr;
else
if(monthStr.equals("April"))
displayStr = monthStr;
else
if(monthStr.equals("May"))
displayStr = monthStr;
else
if(monthStr.equals("June"))
displayStr = monthStr;
else
if(monthStr.equals("July"))
displayStr = monthStr;
else
if(monthStr.equals("August"))
displayStr = monthStr;
else
if(monthStr.equals("September"))
displayStr = monthStr;
else
if(monthStr.equals("October"))
displayStr = monthStr;
else
if(monthStr.equals("November"))
displayStr = monthStr;
else
if(monthStr.equals("December"))
displayStr = monthStr;
//asks for the year from user
yearStr = JOptionPane.showInputDialog(null, "Please enter the year between 1800 and 2099:");
year = Integer.parseInt(yearStr);
//displayStr that displays the user's month and year.
displayStr = monthStr + " " + yearStr + "\n";
System.out.print(displayStr);
//computation of the first two digits and last two digits of the year.
firstTwoYear = year / 100;
lastTwoYear = year % 100;
//HUGE computation to check the dayofWeek variable. This should compute where the first day of the month will display on the calendar.
if ((lastTwoYear >= 0) && (lastTwoYear <= 99))
dayofWeek = lastTwoYear * (1/4);
if (firstTwoYear == 18)
dayofWeek = dayofWeek + 2;
else if (firstTwoYear == 19)
dayofWeek = dayofWeek;
else if (firstTwoYear == 20)
dayofWeek = dayofWeek + 6;
//Checks to see if a given year has a leap year or not.
boolean leapYear =
(year % 4 == 0 && year % 100 != 0) || (year % 400 == 0);
if(monthStr.equals("January"))
daysinMonth = 31;
if(leapYear)
dayofWeek = dayofWeek + 6;
else
dayofWeek = dayofWeek + 1;
else
if(monthStr.equals("February"))
if(leapYear)
dayofWeek = dayofWeek + 3;
daysinMonth = 29;
else
dayofWeek = dayofWeek + 4;
daysinMonth = 28;
else
if(monthStr.equals("March"))
dayofWeek = dayofWeek + 4;
daysinMonth = 31;
else
if(monthStr.equals("April"))
dayofWeek = dayofWeek;
daysinMonth = 30;
else
if(monthStr.equals("May"))
dayofWeek = dayofWeek + 2;
daysinMonth = 31;
else
if(monthStr.equals("June"))
dayofWeek = dayofWeek + 5;
daysinMonth = 30;
else
if(monthStr.equals("July"))
dayofWeek = dayofWeek;
daysinMonth = 31;
else
if(monthStr.equals("August"))
dayofWeek = dayofWeek + 3;
daysinMonth = 31;
else
if(monthStr.equals("September"))
dayofWeek = dayofWeek + 6;
daysinMonth = 30;
else
if(monthStr.equals("October"))
dayofWeek = dayofWeek + 1;
daysinMonth = 31;
else
if(monthStr.equals("November"))
dayofWeek = dayofWeek + 4;
daysinMonth = 30;
else
if(monthStr.equals("December"))
dayofWeek = dayofWeek + 6;
daysinMonth = 31;
dayofWeek = dayofWeek + firstDayofMonth;
dayofWeek = dayofWeek % 7;
//this checks if dayofWeek equals 0, it will be placed on the 7th column (Saturday)
//else the dayofWeek will enter 1-6 like normally (Sunday-Friday)
int colnum;
if (dayofWeek == 0)
colnum = 7;
else
colnum = dayofWeek;
for(int i = 0; i < colnum; i++)
System.out.print(" ");
//Displays days of the month and inserts empty columns before 1st day
for(int day = 1; day <= daysinMonth; day++)
if (day < 10)
System.out.print(" " + day);
else
System.out.print(" " + day);
if ((colnum + day) % 7 == 0)
System.out.println();Well, I could move the displayStr = monthStr into the other section of the code where the months are at, but as far as using java.util.Calendar/GregorianCalendar classes the professor made no recommendation of it (though it would be easier no doubt.) That's what he told us to use to display the month properly. I did look in the web for other examples and they did use the java.util.Calendar/GregorianCalendar classes, but I have no idea how to properly implement it. Besides, I was not asking about redundancy.
After I made the thread, I did work on it a little bit more, and I changed:
if ((lastTwoYear >= 0) && (lastTwoYear <= 99))
dayofWeek = lastTwoYear * (1/4); into:
if ((lastTwoYear >= 00) && (lastTwoYear <= 99))
dayofWeek = (int) (lastTwoYear * .25);The year 2008 was properly displaying everything on the correct dates, but the other years are off by a few days. So now its either the computation in the long sequence of dayofWeek variable, or (what the professor mentioned in the assignment) it could be:
loop (for the number of days in the month)
displayStr = displayStr + <digit in field width of 3>
if last digit in row, then append �\n� to displayStr}The whole loop, including the "append "\n" to displayStr" doesn't make much sense. So that could be where I'm having problems. -
Please answer a programming question for an admin
I'm not a programmer (although my interest is growing), so I can't answer this question in a discussion regarding how Win32API w/OLE and COM is SO much better than programming for Unix/OS X applications.
The original discussion was in regards to OS X's superior Unix based security, he devolved to this. Having only begun my venture into programming, his questions are a little above my head at this point. I'm also interested (as an amature programmer), how this would be accomplished in OS X/Unix.
Thanks in advance.
Here's his position:
*(1st entry)*
I have unsed Windows and many flavors of Unix and I have written programs in Assembler, Fortran, Pascal, Cobol, RPG, Smalltak, Basic, PowerBuilder, Delphi, C, C++, C#, Java, and Perl, and I have been programming for over 20 years, so I do have extensive knowledge about programming.
So I have one question for you:
If you had to build a business application that has to allow users to, spell and grammer check, and perform financial calculations, and render the HTML, how would you compare the effort to do this in Windows versus that in Linux, AIX, Solaris or any other Unix operating system?
I can make this business application have these features in ONE DAY on Windows, because COM and OLE lets me, use Word to spell and grammer check, Excel to do the financial calculations, and IE to render the HTML!
I make my living building complex customized business software, and Windows allow me to build these applications by myself in weeks, when it would take me and a team of programmers months to do these same things in Unix because of the lack of an the Win32 API, COM, and OLE, or I would have to BUY third party libraries that did these things, and deal with the licensing, versioning, and vendor problems that go with them, and none of those third party librabries would be close to Word, Excel, and IE in CAPABILITY!
HONESTLY tell me and others reading this thread how you would go about create the customized business application I described above by yourself in a Unix instead of Windows, and tell us how many MONTHS or YEARS it would take you, or how you would have to BUY some other third party libraries to do what Word, Excel, and IE!
Anyone who thinks a Unix has more CAPABILITIES than Windows, has never used Win32API/COM/OLE/.Net, and does not build customized complex business software for a living, because we people that do are the reason that you find some much customized business desktop software for Windows, and so little for any Unix.
I have nothing against Unix, and it is great for simple business tasked server software, but for complex business tasked desktop software Windows with Win32API/COM/OLE/.Net wins hands down!
*(2nd Entry)*
A System administrators view of an operating system and an application developers view are entirely different, and the Win32API/COM/OLE/.NET simply make my job so much easier, and you simply don't understand because you do not have to deal with the "dirty' details of making what a user wants, which is why your definition of "integration" and mines are totally different!
With the spell check you talked about, how will you keep in in synch with the dictionary in Word where the user is constantly adding and removing words?
No, you would have the user to have to maintain two different spell check dictionaries, and you would totally ignore the grammer check requirement!
Cutting and pasting data between applications is simple integration, and not the complex type that I am talking about.
Can you make your application display and use the MacGourmet menus appear in its own window, and to access and use the MacGourmet functionality (ie. search for a recipe) in its own window?
Give me one example of a Unix application that can display the menus of another application, yet alone control its features!
Of course you can't, because you need COM and OLE!
I am quite familiar with different flavors of Unix, but those operating systems do not have the rich API and program integration features namely COM and OLE that Windows has, because it violates the Unix idea of security by process isolation!
Yes that idea of process isolation keeps the operating system safe from malicious code in applications and from one application taking the others down, but you lose the power of programs working together, and you simply cannot build the type of customized business applications that I build by myself, without reinventing the wheel over and over and without having a large team with lots of programmers.
For example, my customers and millions of others spend all day working in Word and Excel, and the Windows idea that I can transparently integrate my complex business applications right in Word and Excel menu, and into their templates and macros, is why third party developers like me prefer Windows over Unix, regardless of how much better security in Unix is.
Do not get me wrong, Java improves business application development on Unix, but unfortuantely it is not feasable to rewrite ever legacy application in Java, and Java does not integrate well with other programming languages.
I used to code business application for both IBM MVS and Sun Solaris, and I never want to go back to those "bad" old days again, once I took the time to learn how to PROPERLY code using Win32API/COM/OLE/.NET!At risk of feeding the troll I'll wander in here:
NOTE: Since this is an Apple programming boards and I have limited experience programming on traditional Unix systems (and most of that in college) I will confine my answers to the area I know.
If you had to build a business application that has to allow users to, spell and grammer check, and perform financial calculations, and render the HTML, how would you compare the effort to do this in Windows versus that in Linux, AIX, Solaris or any other Unix operating system?
I can make this business application have these features in ONE DAY on Windows, because COM and OLE lets me, use Word to spell and grammer check, Excel to do the financial calculations, and IE to render the HTML!
Note that this scenario assumes the user has Microsoft office installed. The person argues that they don't have to purchase libraries to program but what they are effectively doing is simply transferring that cost to user. I don't have to purchase libraries but everyone of my users needs to. Good for you, very good for Microsoft but bad for your customer - IMHO. OK, I know "But all Windows business users have Office installed already." When it comes free with the system then I'll retract my objection.
Under OS X and Cocoa many of these functions are intrinsic to the system layer and do not require any applications to be installed. Using Cocoa you can write a simple Word processor that has rulers, full font manipulation (including kerning, spacing and leading), Document Save and Load, Printing, Export to PDF as well as spell-checking in under 10 lines of actual code. Adding a custom file type and icon for full system integration will add another 5 minutes to your programing.
In case you think I'm blowing smoke here is a tutorial from 2002 (yes, this has been possible for over 5 years) outlining the 8 line Word Processor build in Cocoa. http://www.stone.com/TheCocoa_Files/What_s_sofunny.html
And yes, Cocoa also includes Webkit so I can add full HTML rendering by dragging in a WebKit window to my user interface. For an experienced Cocoa programmer this certainly sounds like less than a day of programming - in fact it sounds like a good tutorial for a middle-experienced training day or 2 day class in Cocoa.
I won't include the link to the 1 line web browser you can build in Cocoa using Webkit because it's shorter than the description. Feel free to search for it if you want to.
HONESTLY tell me and others reading this thread how you would go about create the customized business application I described above by yourself in a Unix instead of Windows, and tell us how many MONTHS or YEARS it would take you, or how you would have to BUY some other third party libraries to do what Word, Excel, and IE!
BUT this is all done from the stock system that is on every OS X computer not simply those with Office installed. Obviously you'd need to add some features that were more complicated than this - because any halfway decent programmer could turn this stuff out - and polish takes a while but to meet the requirements of the challenge it would take 2 days tops.
Is every *nix programming environment like this? I don't know I can only answer for the system that I have experience with and is the concern of this board. If you really have questions regarding *nix programming then I suggest you find an appropriate board and troll^H^H^H^H^H ask there.
If you're ever serious about programming on the Mac feel free to stop by and actually take a look at it. I think you'll be surprised.
=Tod -
Apple iPod Nano replacement program - question
Hello, Apple community,
I have a question about the new replacement program of the iPod nano 1st gen.
The program doesn't state whether or not you get a refund or a new iPod nano (the small squared once with touch screen).
The program says that you'll get a replacement iPod Nano, but isn't very specific if it is the new generation.
I apologise for any spelling mistakes and such.
Thank you for any answer,
Pool313Hi lindsayfromspencerport,
I can say it is not a scam - Apple is definitely replacing the iPods. Once I read the article and went to apple.com, that proved it. Apple.com would never risk another class action lawsuit over this iPod.
My First Generation iPod was given to me at work for being the winner of a give-away drawing and about a year or so ago it overheated and erased all the info on the iPod. Now it will only charge and drain the battery. It no longer allows me to store any thing on it.
I am glad that Apple is doing this exchange. I thought I was just out of luck and was glad I had not paid full price for it. I love my Nano and used it constantly!!!
Just send your's in using the box and label they send you and give them 6 weeks like the apple.com website says, Apple will make good on their product. Millions of people don't stand in line and wait weeks/months for their new products to arrive for no reason, trust me. Oh, by the way, I know this for sure.....I work for a wireless phone service that has been dealing with Apple for Yearsssssssssssss.....and every year the same thing. People will give anything to get a product with that apple on it.
Knightmanxx -
Inbound idoc program name...
Hi all,
i have one inbound idoc.From the data in the idoc some custom table was getting updated thrugh some program.So how to find the program name which will do that.i have only the idoc no with me....
thanks in advance.......
Regards,
Rakesh.........GO TO WE19
Give the idoc number
Press F8
Then Press 'Standard Inbound'
Note down the function module
Press Cancel
Press 'Inbound Function Module'
Give the Function mudule name which you get from the previous step
Check 'Call in Debug Mode'
Select in Foreground
Debug the same and it will lead to the place where you are uploading the same. -
Hi,Everybody:
I have a question about Java programming. If I want to write a java class code called if.java like below, how should I do to make it pass the java compiler and make it work. I know the words "if" and "for" are reserved words. I just try to figure it out that is it possible??? Do I need to create my own java compiler or recompiler?
public class if
public if() { }
public static for test()
return new for();
public class for
public for() { System.out.println("for class constructor"); }
}I don't think you can bypass the compiler's rejection of this. There is little point to naming the classes after keywords. Not sure if it's case sensitive though, so maybe "If" or "For"? Otherwise, try "if_" or "for_"
Maybe you are looking for
-
I'm working with a client who is syncing his iPod touch. He's been adding music to this iPod consistently for the last two years, and today, his largest and most frequently play playlist will not sync. If you click on the device, the playlist appea
-
Presets : Interpolation vs Apply (or Undo)
Hello, I'm quite frustrated with the preset as they are. Of course it's time saving, but most of time a preset fit perfectly for one picture, the one you were working on when you saved that preset. And they often require adjustements after being appl
-
HI all i mentioned on another thread http://community.bt.com/t5/BT-Infinity/New-draytek-sync/td-p/517941/page/2 that i was getting a Draytek vigor 2750N. I got it from ebay for about £100. As it was used off ebay i took some advise and factory reset
-
Never gotten this error message, what does it mean?
When trying to access this link: http://einestages.spiegel.de/hund-images/original/2008/02/24/3/49cb6707b145cf399 ce7b386793af06e_orig.jpg I got this error: ERROR The requested URL could not be retrieved While trying to retrieve the URL: http://eines
-
How many iDevices can you use for the same apple id?
Id just like to know for future refence if i get an iMac etc.