Reset flag
Hi Experts I need an advice for the below case.
A flag which is set in the EBAN must be reseted. This
is the programm. It doesn't do that. What can be reason for that.
This is the Function Module Call from SAP SRM System with destination command.
CALL FUNCTION 'ZBM_RESET_FLAG'
DESTINATION 'RV3CLNT888'
EXPORTING
BANFNUMBER = ls_ITEM-EXT_DEMID
EXCEPTIONS
NOT_RESETED = 1
OTHERS = 2.
The Function Module is in the the backendsystem (R/3).
FUNCTION ZBM_RESET_FLAG.
*"*"Lokale Schnittstelle:
*" IMPORTING
*" VALUE(BANFNUMBER) TYPE BANFN
*" EXCEPTIONS
*" NOT_RESETED
data lt_eban type table of eban.
data ls_eban type eban.
data: l_r_banfn type table of ZBANFEN.
SELECT * FROM eban into table lt_eban where BANFN EQ BANFNUMBER AND LOCKFLAG EQ 'X'.
IF SY-SUBRC IS INITIAL.
LOOP AT lt_eban INTO ls_eban .
clear: ls_eban-LOCKFLAG .
modify eban from ls_eban.
ENDLOOP.
ELSE.
raise NOT_RESETED.
ENDIF.
ENDFUNCTION.
Dear Colleques,
the problem is still existing.
I have inserted a infinite loop and have called t-code sm50 and debugged this coding.
There is no sy-subrc <> 0 and any error message.
Is it not possible to update a dictionary table via remote call like in my case ?
What is worng here ?
Regards
ertas
data lzahl1 type i .
data lzahl2 type i .
lzahl1 = 0.
lzahl2 = 2.
while lzahl1 < lzahl2.
clear sy-subrc.
endwhile.
data lt_eban type table of eban.
data ls_eban type eban.
data: l_r_banfn type table of ZBANFEN.
CALL FUNCTION 'CONVERSION_EXIT_ALPHA_INPUT'
EXPORTING
INPUT = BANFNUMBER
IMPORTING
OUTPUT = BANFNUMBER.
SELECT * FROM eban into table lt_eban where BANFN EQ BANFNUMBER AND LOCKFLAG EQ 'X'.
IF SY-SUBRC IS INITIAL.
LOOP AT lt_eban INTO ls_eban .
UPDATe eban set lockflag = ' ' where banfn = ls_eban-BANFN.
commit work and wait.
ENDLOOP.
ELSE.
raise NOT_RESETED.
ENDIF.
Similar Messages
-
Hi All,
For few materials in the system MARC-XCHAR (internal Batch Management Indicator) is set where as MARC-XCHPF (Batch Management requriement) is BLANK.
I am unable to trace the reason, Can you let me know importance of the same
and request you let me know the procedure & pre-requisites to deactivate MARC-XCHAR field.
Thanks in advance,
NagMM17 is just not possible as the field XCHAR is not among the changable fields (it is only among the fields for selection)
It is an internal field that indicates that the material is to be managed in batches.
A material is to be managed in batches for 2 reasons: batch managment requirement is set (field XCHPF)
or split valuation without batch management requirement is chosen. In this case SAP creates still a batch. the batch number is then equal to the valuation type.
You certainly cannot undo this unless you archive the material master valuation data.
Further in SE38 for Report LMGD1I1U you can see SAPs explanation of this indicator, unfortunatly only in German language. -
JCO - Connection reset by peer - after 5 minute timeout
Hello
We're using SUP with the JCO Connector. This has been working flawlessly since project inception. Now, after switching to a new data center (Windows Server 2008 Server Enterprise Edition, SP2 on VMWare) we're observing a mysterious behavior with timeouts of idle connections. I hope someone in this forum knows what this might be.
JCO connections originate from SUP servers. When such connections are idle for more than 5 minutes they get disconnected from SAP -- this is in agreement with SAP timeout parameter of 300 seconds.
On our new systems we noticed that requests sent 5min+ (after timeout) show following error:
Thread-8 [22:08:55:343]: [JNI-LAYER] RFC.nativeExecute() before RfcCallReceive(2,"Z_U_ONEMOBILE_SWO_SEARCH",0000000010CDC850,0000000000000000,0000000010C81530,000000000C79CA88)
Thread-8 [22:08:55:344]: [JNI-LAYER] RFC.nativeExecute() after RfcCallReceive(2,"Z_U_ONEMOBILE_SWO_SEARCH",0000000010CDC850,0000000000000000,0000000010C81530,000000000C79CA88) = RFC_SYS_EXCEPTION
Thread-8 [22:08:55:344]: [JAV-LAYER] JCO.Client.execute (Z_U_ONEMOBILE_SWO_SEARCH) threw a NON-ABAP exception: com.sap.mw.jco.JCO$Exception: (104) RFC_ERROR_SYSTEM_FAILURE: CPIC-CALL: 'CMRCV : rc=20
ERROR connection to partner '---removed!---:3299'
broken
TIME Fri Feb 11 18:08:55 201
RELEASE 710
COMPONENT NI (network interface)
VERSION 39
RC -6
MODULE nixxi.cpp
LINE 4448
DETAIL NiIWrite: P=161.88.23.170:3299; L=0.0.0.0:49730
SYSTEM CALL WSASend
ERRNO 10054
ERRNO TEXT WSAECONNRESET: Connection reset by peer
COUNTER 3
Thread-8 [22:08:55:344]: [JNI-LAYER] RFC.nativeDisconnect() enter, [SUCCESS]
Thread-8 [22:08:55:344]: [JNI-LAYER] RFC.nativeDisconnect() before RfcClose(2)
Thread-8 [22:08:55:344]: [JNI-LAYER] RFC.nativeDisconnect() after RfcClose(2)
Thread-8 [22:08:55:344]: [JNI-LAYER] RFC.nativeDisconnect() with rc = RFC_OK leave, [SUCCESS]
Our suspicion is that the JCO client doesn't notice the fact that it gets disconnected. We used Network Monitor 3.4 to look at network traffic. Indeed, after 5 minutes the client gets a single frame (with reset flag) and no acknowledgement goes back.
What could this be?
We use
JCO 2.1.8 AMD 64-bit (contains librfc 6.40) and
JCO 2.1.9 AMD 64-bit (contains librfc 6.40) but replaced this with librfc 7.10 (after seeing Note 825494). Behavior was exactly the same. We did confirm in jco/rfc trace that those versions were actually used.
Any ideas?
Thanks and regards
Edited by: B. Gottipati on Feb 14, 2011 9:17 PMHello
We're using SUP with the JCO Connector. This has been working flawlessly since project inception. Now, after switching to a new data center (Windows Server 2008 Server Enterprise Edition, SP2 on VMWare) we're observing a mysterious behavior with timeouts of idle connections. I hope someone in this forum knows what this might be.
JCO connections originate from SUP servers. When such connections are idle for more than 5 minutes they get disconnected from SAP -- this is in agreement with SAP timeout parameter of 300 seconds.
On our new systems we noticed that requests sent 5min+ (after timeout) show following error:
Thread-8 [22:08:55:343]: [JNI-LAYER] RFC.nativeExecute() before RfcCallReceive(2,"Z_U_ONEMOBILE_SWO_SEARCH",0000000010CDC850,0000000000000000,0000000010C81530,000000000C79CA88)
Thread-8 [22:08:55:344]: [JNI-LAYER] RFC.nativeExecute() after RfcCallReceive(2,"Z_U_ONEMOBILE_SWO_SEARCH",0000000010CDC850,0000000000000000,0000000010C81530,000000000C79CA88) = RFC_SYS_EXCEPTION
Thread-8 [22:08:55:344]: [JAV-LAYER] JCO.Client.execute (Z_U_ONEMOBILE_SWO_SEARCH) threw a NON-ABAP exception: com.sap.mw.jco.JCO$Exception: (104) RFC_ERROR_SYSTEM_FAILURE: CPIC-CALL: 'CMRCV : rc=20
ERROR connection to partner '---removed!---:3299'
broken
TIME Fri Feb 11 18:08:55 201
RELEASE 710
COMPONENT NI (network interface)
VERSION 39
RC -6
MODULE nixxi.cpp
LINE 4448
DETAIL NiIWrite: P=161.88.23.170:3299; L=0.0.0.0:49730
SYSTEM CALL WSASend
ERRNO 10054
ERRNO TEXT WSAECONNRESET: Connection reset by peer
COUNTER 3
Thread-8 [22:08:55:344]: [JNI-LAYER] RFC.nativeDisconnect() enter, [SUCCESS]
Thread-8 [22:08:55:344]: [JNI-LAYER] RFC.nativeDisconnect() before RfcClose(2)
Thread-8 [22:08:55:344]: [JNI-LAYER] RFC.nativeDisconnect() after RfcClose(2)
Thread-8 [22:08:55:344]: [JNI-LAYER] RFC.nativeDisconnect() with rc = RFC_OK leave, [SUCCESS]
Our suspicion is that the JCO client doesn't notice the fact that it gets disconnected. We used Network Monitor 3.4 to look at network traffic. Indeed, after 5 minutes the client gets a single frame (with reset flag) and no acknowledgement goes back.
What could this be?
We use
JCO 2.1.8 AMD 64-bit (contains librfc 6.40) and
JCO 2.1.9 AMD 64-bit (contains librfc 6.40) but replaced this with librfc 7.10 (after seeing Note 825494). Behavior was exactly the same. We did confirm in jco/rfc trace that those versions were actually used.
Any ideas?
Thanks and regards
Edited by: B. Gottipati on Feb 14, 2011 9:17 PM -
Hi,
Parameter field still editable after setting flag ‘PropFlags_NotEditable’?
I have defined a step type with a string parameter. (MyParameter). This parameter field has to contain custom generated data, stuffed from a code module.
I want to have ‘MyParameter’ read only for all instances of the step in my sequence.
I have set the property flag ‘PropFlags_NotEditable’ for ‘MyParameter’ in my step type definition, because I want to have this parameter read only in all instances.
When I try to edit ‘MyParameter’ field in an instance of the step in the sequence in the variable pane ‘Step’ - ‘MyParameter’, it still works?
What is wrong here, I suppose this should work?
Best regards1) Make sure you have show hidden properties turned on in the station options, preferences tab.
2) In your step type expand the variables to the place where the expression is stored for the parameter argument. In the .NET adapter this would be something like the following:TS.SData.Call.Params[0].ArgVal. Right-click on ArgVal and select the Properties menu item.
3) Click on the advanced button and select flags.
4) When the edit flags dialog pops up, click on the Type Flags button.
5) Check the PropFlags_NotEditable flag for the Instance Default Flags section. Click OK on this dialog.
6) If you want the change to effect currently open instances I think checking the "Reset Flags... " checkbox on the edit flags dialog will do this, otherwise this change will only effect new instances of your step type. Press ok on the remaining dialogs.
7) New instances will now not allow editing that value. NOTE: This only works for the sequence editor module panel though. It does not work for the dialog version used by the user-interfaces.
One thing I want to make sure you are aware of for step types is that using a default code module like this has drawbacks versus using postsubsteps. Setting the default code module doesn't keep the user from changing the specification after they insert the step, also updating existing steps if you want to change the prototype is more problematic. You might be better off with a design more like the step types that ship with teststand like the message popup step type (which also ship with source code so you can see how they are implemented) which instead use post-substeps and edit-substeps and instead designate the none adapter for the step type so that the step type can never have a code module. What they do instead is their edit substeps display a dialog that gets the settings/parameters to the operation that the step type performs and stores those as subproperties of the step. Then at runtime the post-substep gets this information and executes the necessary code. Unlike the default code module setting, changing the substeps in a step type automatically effects all existing instances of the step. Changing the code module only effects new instances, and loaded instances if you check the checkbox for that.
Hope this helps,
-Doug
Message Edited by dug9000 on 04-16-2010 09:58 AM -
The JProgressBar works great using a separate thread for the process and a Runnable thread for progress (calling SwingUtilities.invokeLater()), but I cannot get the darn thing to reset back to 0 for another run. A simple call to progressBar.setValue(0); does not accomplish this. Setting a reset flag (boolean) checked within the Runnable and calling SwingUtilities.invokeLater() doesn't accomplish this either. How the heck do I reset the progress bar for multiple successive activities?
Thanks,
Robert TempletonThis works for me:
import java.awt.BorderLayout;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import javax.swing.JButton;
import javax.swing.JFrame;
import javax.swing.JPanel;
import javax.swing.JProgressBar;
public class ProgressExample extends JFrame implements ActionListener, Runnable {
private JProgressBar progress = new JProgressBar(0, 100);
private JButton start = new JButton("Start!");
private static int[] sleeps = {20, 10, 40}; //milliseconds
public ProgressExample() {
super("Progress example");
setDefaultCloseOperation(EXIT_ON_CLOSE);
JPanel cp = (JPanel)getContentPane();
cp.add(progress, BorderLayout.NORTH);
start.addActionListener(this);
cp.add(start);
pack();
setVisible(true);
public void actionPerformed(ActionEvent e) {
start.setEnabled(false);
new Thread(this).start();
public void run() {
for (int sleep : sleeps) {
progress.setValue(0);
for (int i=1; i<101; i++) {
try {
Thread.sleep(sleep);
} catch (InterruptedException e) {
break;
progress.setValue(i);
start.setEnabled(true);
public static void main(String[] args) {
new ProgressExample();
}-Muel -
Error : Business partner has status "Flagged for Archiving"
Hi All,
I have error in order: Business partner (Sold to Party) .has status "Flagged for Archiving"
I removed the Click "Archiving Flag" from BP and I changed the order.
But still error is not going.
Can somebody suggest what to do for removing this error?
Regards
JayHi Jay,
Follow these steps :
1. Go to Transaction BUPA_PRE_DA.
2. In the relevant fields, enter the BP number, mark the radio button for 'To be archived' , check the 'Reset Flag' check box.
3. Uncheck the 'test run' check box.
4. Execute.
This will reset the archiving flag.
Hope this solves your problem.
Cheers,
Rishu. -
Hi all,
i have a strange error on my ASA5515-X and I can not understand what can be.
I natted server-mail with services https:
object network Owa_10.0.1.4
host 10.0.1.4
object network Owa_10.0.1.4
nat (INSIDE,OUTSIDE) static interface service tcp https https
access-list INSIDE_access_in extended permit ip any any
access-list OUTSIDE_access_in extended permit ip any any
access-group INSIDE_access_in in interface INSIDE
access-group OUTSIDE_access_in in interface OUTSIDE
interface GigabitEthernet0/0
nameif INSIDE
security-level 100
ip address 10.0.1.254 255.255.0.0
interface GigabitEthernet0/1
nameif OUTSIDE
security-level 0
ip address 217.5x.xxx.xxx 255.255.255.240
If i send a mail from inside to outside mail reaches the receiver, if mail is sent from outside (such as from @gmail.com to internal mailbox) mail does not arrive. Attached there are logs with TCP Reset-O.
what could be the issue? I have something wrong in the configuration?
Thanks in advance.
MHello Marco,
Your configuration looks all right, I would say "permit ip any any"
is okay on this case for troubleshooting purposes but do not remember later change rules on outside and only allow services you need to. Besides your configuration is fine. Also in log provided connection looks okay from firewall perspective.
Here is meaning of Reset-O and Reset-I according title on this post:
- TCP Reset-I - The client tear down the connection (typical in an SMTP or IMAP exchange -I = inside interface).
- TCP Reset-O - The server was not listening on that protocol at that time (usually seen as coming from SMTP servers -O = Outside interface).
I would suggest you to check if server is listening on ports required (netstat works on this), run some captures on your server maybe using wireshark in order to confirm if server is resetting connection and check out for incoming traffic.
Run some captures on the firewall in order to confirm the reset is comming from Outside.
capture inside interface inside match tcp any host 10.0.1.4 eq 443
capture outside interface outside match tcp any host 217.5x.xxx.xxx eq 443
capture asp type asp all >>> in order to check packets firewall has dropped.
show capture asp | inc 10.0.1.4
show capture asp | inc 217.5x.xxx.xxx.443
show capture inside >>>> check for tcp reset flag (R)
Captures:
https://supportforums.cisco.com/docs/DOC-17345
Jhn -
Error while updating table before branching to a report
Hi,
I have an apex form screen where on click of a button, i need to change a few flags on the screen and then display a bi publisher report.
when the user clicks the PRINT Button a javascript function is called, which will set the flags and submits the form. I have the default process row of table process to update the form fields.
in the branch i gave the BI publisher report url.
everything works fine so far.
if i click the print button again for a second time, i get a checksum ... error as shown below.
ORA-20001: Error in DML: p_rowid=982-000790, p_alt_rowid=_ID_NUMBER, p_rowid2=, p_alt_rowid2=. ORA-20001: Current version of data in database has changed since user initiated update process. current checksum = "BD63FDD3142B79017CCD2C8DA8ED8CA7" application checksum = "B2FD7581A9478214E59264F9C1CFAF96"
Error Unable to process row of table .
OK
Any idea how to fix this?
What i am trying to do is:
when the print button is clicked then i need to set the Print flag in the screen and database to true.I am using the default row update process generated by apex for a table form.
Thanks
KnutHi Scott,
example 1
I have a demo at the following url
http://apex.oracle.com/pls/otn/f?p=30091:6:1206476651563662::NO:::
1. page 6 is the report and page 7 will be the details form.
2. select a record from the report click edit and it will take you to the details screen page 7.
3. on page 7 i have 2 select boxes with YES/NO flag. Initially set them to NO.
save changes.
4. click on the print button. it will reset the select lists to YES and opens a report.
5.now go and edit anything on the screen and click apply changes.
we will get the an error.
All i am trying to do is update the flags to YES before displaying the report which works fine. but if i try to edit any data and save it throws an error.
is my table.
CREATE TABLE "DEMO_MINISTER"
( "MINISTER_ID" VARCHAR2(12),
"NAME" VARCHAR2(50),
"CERT_FLAG" VARCHAR2(1),
"LABEL_FLAG" VARCHAR2(1)
MINISTER_ID" is the primary key generated using a sequence. (i have to actually generate it with - year prefix etc hence a varchar)
example 2:
http://apex.oracle.com/pls/otn/f?p=30091:1:607292687304632:::::
i have another page page 1 with demo_customers list. here the id is a number here. on edit it displays page 5 where i tried the same print reset flag stuff here and it works.
Table Data Indexes Model Constraints Grants Statistics UI Defaults Triggers Dependencies SQL
CREATE TABLE "DEMO_CUSTOMERS"
( "CUSTOMER_ID" NUMBER NOT NULL ENABLE,
"CUST_FIRST_NAME" VARCHAR2(20) NOT NULL ENABLE,
"CUST_LAST_NAME" VARCHAR2(20) NOT NULL ENABLE,
"CUST_STREET_ADDRESS1" VARCHAR2(60),
"CUST_STREET_ADDRESS2" VARCHAR2(60),
"CUST_CITY" VARCHAR2(30),
"CUST_STATE" VARCHAR2(2),
"CUST_POSTAL_CODE" VARCHAR2(10),
"PHONE_NUMBER1" VARCHAR2(25),
"PHONE_NUMBER2" VARCHAR2(25),
"CREDIT_LIMIT" NUMBER(9,2),
"CUST_EMAIL" VARCHAR2(30),
"PRINT_FLAG" VARCHAR2(1),
"PRINT_LABEL_FLAG" VARCHAR2(1),
CONSTRAINT "DEMO_CUST_CREDIT_LIMIT_MAX" CHECK (credit_limit <= 5000) ENABLE,
CONSTRAINT "DEMO_CUSTOMERS_PK" PRIMARY KEY ("CUSTOMER_ID") ENABLE
So what should i do to get the example 1 to work.
Thanks
knut -
How to store numbers in a stack....
hello guys...i ve got the following assignment:
Write a Java program that reads and evaluates a fully parenthesised arithmetic expression. The
purpose of this program is to illustrate a fundamental use of stacks. Implement the stack using
Linked Lists as explained in your notes.
For e.g if a user enters the expression: (((6 + 9) / 3) * (6 � 4))
The result should be 10.
Your program should be properly documented and well structured. Specifications should be
clearly written in your logbook for all the methods, constructors, and classes that you implement
in the following format:
Class / Method/ Constructor name explaining what it does
Parameters
Preconditions
Postconditions
Throws
Now, i ve come up with the following code:
import java.util.EmptyStackException;
class StackNode {
private static Object data;
private StackNode link;
private static StackNode head;
private int totalnodes;
// the constructors
public StackNode(Object obj, StackNode lk)
data = obj;
link = lk;
public StackNode()
head = null;
totalnodes = 0;
// the push method
public void push(Object obj)
head = new StackNode(obj, head);
totalnodes++;
// the pop method
public Object pop()
Object answer;
if(head == null)
throw new EmptyStackException();
answer = head.getData();
head = head.getLink();
totalnodes--;
return answer;
// the isEmpty method
public boolean isEmpty()
return (head == null);
// get data
public Object getData()
return data;
// get link
public StackNode getLink()
return link;
// size or length method
public int size()
return totalnodes;
public static void main (String args [])
int i;
StackNode number = new StackNode();
StackNode operator = new StackNode();
head = new StackNode(data, head);
number.push(new Integer(9));
number.push(new Integer(6));
operator.push(new Character('+'));
and i dont know how to store numbers into the stack and how to use the operations such as addition substraction division and multiply...
any ideas how to do that??
cheers....This doesn't use a stack but the concept is the same:
import java.util.*;
public class formula {
public int aValue = 1;
public int bValue = 2;
public int cValue = 3;
public formula() {
//StringTokenizer st = new StringTokenizer("a + b/c", " abc()+-*/", true);
//while (st.hasMoreTokens()) { System.out.println(st.nextToken()); }
StringTokenizer st2 = new StringTokenizer("a + (c - b) + (b * c)", " abc()+-*/", true);
int operand1 = 0;
int operand2 = 0;
int operator = 0;
//flag: first operand has a value
boolean firstOperandFull = false;
//flag: second operand has a value
boolean secondOperandFull = false;
//flag: tokens are between parens
boolean inParens = false;
Vector inParensVector = null;
MAINLOOP:
while (st2.hasMoreTokens()) {
String x = st2.nextToken();
//if token is a blank skip it.
if (x.equals(" ")) { continue MAINLOOP; }
System.out.println(x);
//if token is open parens set flag and skip to next token
if (x.equals("(")) { inParens = true; inParensVector = new Vector(); continue MAINLOOP; }
//if tokn is close parens, retrieve the value from between the parens and reset flag.
if (x.equals(")")) { if (! firstOperandFull) { operand1 = doInParens(inParensVector); firstOperandFull = true; }
else { operand2 = doInParens(inParensVector); secondOperandFull = true; }
inParensVector = null; inParens = false; }
//if token is open parens store all tokens until close else process the token
if (inParens) { inParensVector.add(x); }
else {
//if token is a variable put correct value in operand
if (x.equals("a")) { if (! firstOperandFull) { operand1 = aValue; firstOperandFull = true; }
else { operand2 = aValue; secondOperandFull = true; } }
if (x.equals("b")) { if (! firstOperandFull) { operand1 = bValue; firstOperandFull = true; }
else { operand2 = bValue; secondOperandFull = true; } }
if (x.equals("c")) { if (! firstOperandFull) { operand1 = cValue; firstOperandFull = true; }
else { operand2 = cValue; secondOperandFull = true; } }
//if token is a operator store the operation
if (x.equals("+")) { if (firstOperandFull) { operator = 1; } }
if (x.equals("-")) { if (firstOperandFull) { operator = 2; } }
if (x.equals("*")) { if (firstOperandFull) { operator = 3; } }
if (x.equals("/")) { if (firstOperandFull) { operator = 4; } }
System.out.println("operand1 = " + operand1 + " operand2 = " + operand2 + " operator = " + operator);
//if second operand has a value perform the operation.
if (secondOperandFull) {
switch (operator) {
case 1 : operand1 = add(operand1, operand2); secondOperandFull = false; break;
case 2 : operand1 = subtract(operand1, operand2); secondOperandFull = false; break;
case 3 : operand1 = multiply(operand1, operand2); secondOperandFull = false; break;
case 4 : operand1 = divide(operand1, operand2); secondOperandFull = false; break;
}//end switch
} //end if
} //End inParens else
} //End while
System.out.println("answer = " + operand1);
public static void main(String[] args) { //formula f = new formula();
Vector v = new Vector();
StringTokenizer st = new StringTokenizer(",Greg,,Paul,,", ",", true);
String token = null;
String lastToken = " ";
boolean firstToken = true;
while (st.hasMoreTokens()) {
token = st.nextToken();
if (firstToken) { if (token.equals(",")) { v.add("X"); }
firstToken = false; }
if (! token.equals(",")) { v.add(token); }
else { if (lastToken.equals(",")) { v.add("X"); } }
lastToken = token;
} //End While
if (token.equals(",")) { v.add("X"); }
Enumeration tokens = v.elements();
while (tokens.hasMoreElements()) {
System.out.println((String)tokens.nextElement()); }
} //End Main
public int add(int operand1, int operand2) { return operand1 + operand2; }
public int subtract(int operand1, int operand2) { return operand1 - operand2; }
public int divide(int operand1, int operand2) { return operand1 / operand2; }
public int multiply(int operand1, int operand2) { return operand1 * operand2; }
public int doInParens(Vector inParensVector) {
int operand1 = 0;
int operand2 = 0;
int operator = 0;
boolean firstOperandFull = false;
boolean secondOperandFull = false;
Enumeration tokens = inParensVector.elements();
INPARENSLOOP:
while (tokens.hasMoreElements()) {
String x = (String)tokens.nextElement();
//if token is a blank skip it.
if (x.equals(" ")) { continue INPARENSLOOP; }
System.out.println("inparens : " + x);
//if token is a variable put correct value in operand
if (x.equals("a")) { if (! firstOperandFull) { operand1 = aValue; firstOperandFull = true; }
else { operand2 = aValue; secondOperandFull = true; } }
if (x.equals("b")) { if (! firstOperandFull) { operand1 = bValue; firstOperandFull = true; }
else { operand2 = bValue; secondOperandFull = true; } }
if (x.equals("c")) { if (! firstOperandFull) { operand1 = cValue; firstOperandFull = true; }
else { operand2 = cValue; secondOperandFull = true; } }
//if token is a operator store the operation
if (x.equals("+")) { if (firstOperandFull) { operator = 1; } }
if (x.equals("-")) { if (firstOperandFull) { operator = 2; } }
if (x.equals("*")) { if (firstOperandFull) { operator = 3; } }
if (x.equals("/")) { if (firstOperandFull) { operator = 4; } }
System.out.println("Inparens : operand1 = " + operand1 + " operand2 = " + operand2 + " operator = " + operator);
if (secondOperandFull) {
switch (operator) {
case 1 : operand1 = add(operand1, operand2); secondOperandFull = false; break;
case 2 : operand1 = subtract(operand1, operand2); secondOperandFull = false; break;
case 3 : operand1 = multiply(operand1, operand2); secondOperandFull = false; break;
case 4 : operand1 = divide(operand1, operand2); secondOperandFull = false; break;
}//end switch
} //end if
} //End while
System.out.println("Inparens return = " + operand1);
return operand1;
}//End doInParens
}//End Class -
Problem: Why does this only work for powers of 2?
I wrote this program to create a golf league schedule for, ideally, eight players. However I want it to be flexible enough to permit for other denominations, such as 10 or 12. When I run the program it works perfectly for any number that is a power of 2 (2,4,8,16,32,etc...) but it will not work for other even numbers such as 6,10, or 12. If anyone has any insights it would be most helpful.
*(This is my first post on this forum so if anything looks not quite right or if this post isn't worded exactly how it should be then I apologize in advance)*
Here's the three classes.
public class ScheduleDriver
public static void main(String[] args)
//instance variables
int max; //size of flight matches array
ScheduleMaster master;//instance of class
//get max number of players for flight
System.out.print("Max number of players in this flight:");
max = Keyboard.readInt();
master = new ScheduleMaster(max);
//create weekly schedules for season
master.createSchedule();
//display weekly schedules
master.displayWeekly();
}//end main
}//end ScheduleDriver
public class ScheduleMaster
//instance variables
int maxPlyrs;//maximum number of players in flight
Week[] weeklySchedule;//array of weekly matches
public ScheduleMaster(int plyrs)
//set up instance data and declare array size
maxPlyrs = plyrs;
weeklySchedule = new Week[plyrs];
//set up the size of each week's matches array
for (int pos = 0; pos < plyrs; pos++)
weeklySchedule[pos] = new Week(plyrs);
}//end for
}//end constructor
public void createSchedule()
int count = 0;//index of weeklySchedule array
final int QUIT = -1; //quit value for loop
int flag = 0; //value to continue or exit loop
//for each player A
for (int a = 1; a < maxPlyrs; a++)
//for each opponent of player A
for (int b = (a + 1); b <=maxPlyrs;b++)
//set count/index and reset flag to zero
count = (a - 1);
flag = 0;
//while still haven't found correct week for this match
while (flag != QUIT)
//if at least one of these players are already scheduled
//for a match this week
if (weeklySchedule[count].checkPlayers(a,b) == true)
//if last valid index of array has been reached
if (count == (maxPlyrs - 2))
//reset count/index to zero
count = 0;
else
//incriment count
count++;
}//end if
else
//assign this match to array of matches for week
//and then exit loop
weeklySchedule[count].setMatch(a,b);
flag = -1;
}//end else
}//end while
}//end for
}//end for
//fill in last week/position night
for (int pos = 0; pos < maxPlyrs;pos++)
//set up position match
weeklySchedule[maxPlyrs - 1].setMatch(pos + 1, pos + 2);
//incriment pos
pos++;
}//end for
}//end createSchedule
public void displayWeekly()
//for each week in schedule
for (int pos = 0; pos < maxPlyrs;pos++)
//display header
System.out.print("WEEK " + (pos + 1));
//if pos/index is 0 or even, flight plays front 9
if ((pos % 2) == 0)
System.out.println(" [FRONT 9]");
//else flight plays back 9
else
System.out.println(" [BACK 9]");
//display lines
System.out.println("----------------");
//display week's matches
weeklySchedule[pos].display();
//skip a line
System.out.println("\n");
}//end for
}//end displayWeekly
}//end ScheduleMaster
public class Week
int[] schedule; //array of players involved in matches for week
int max; //max number of players
int count = 0; //number of players currently involved in matches
public Week(int size)
//set up instance data and size of array
max = size;
schedule = new int[size];
}//end constructor
public boolean checkPlayers(int playerA, int playerB)
boolean flag = false; //flag to determine if at least one of
//the players to check are already playing
//this week
//for each element of array
for (int pos = 0; pos < max; pos++)
//if player A matches player already playing this week
if (schedule[pos] == playerA)
flag = true;
}//end for
//for each element of array
for (int pos = 0; pos < max; pos++)
//if player B matches player already playing this week
if (schedule[pos] == playerB)
flag = true;
}//end for
return flag;
}//end checkPlayers
public void setMatch(int playerA, int playerB)
//if array can take more matches
if (count <= (max - 2))
//insert players into array of active players for week
schedule[count] = playerA;
schedule[count + 1] = playerB;
//incriment count of players playing this week by 2
count = count + 2;
}//end if
else
System.out.print("No more matches can be entered!!!");
}//end setMatch
public void display()
//for every even numbered index starting at zero
for (int num = 0;num < max;num++)
//display the player at that position and the next consecutive
//player who will be his opponent for the week
System.out.println(schedule[num] + "VS" + schedule[num + 1] +
//incriment num
num++;
}//end for
}//end display
}//end WeekAh, I have discovered the problem. The reason for the infinite loop was because of the resetting of the counter/index after every successful match entry back to (a - 1). This was causing matches to be put into weeks where they didn't belong, which caused the program to infinitely loop because it couldn't find an appropriate week to place it's next match. The only time the count should be reset back to zero is when a new player A is being processed or the last valid array index has been referenced before an out of bounds exception would be thrown. I'm still not entirely sure why this doesn't occur on powers of 2 but theh again I haven't put too much thought into it having solved the initial problem! :)
Anyways thanks for the input all who posted, much appreciated.
Happy programming!!!! -
How to know if board has already been intialized
Hello,
I am trying to automate a microscopy stage. I need to be able to move the stage in XY with blended motion, and in Z with single axis control. I have been able to do this but I still have one glaring problem. The module for the XY stage may be loaded first, or the Z stage may be loaded first. The one that get loaded first needs to initialize the board, and then the rest need to just run on the board. I do not know beforehand which one will be first and I have not been able to figure out how to transfer this information between the programs as I have multiple boards that are running from this system and the user may decide to control the stage with one board and the Z focus with a different one.
So with all of that, is there a function that will tell you if the board has been initialized. Here is what I want to do
Start .dll
Get properties (Board ID, Axis, blend mode....)
Check if board is initialized. If not then flex_initialize_controller (BOARDID,null);
Set up axis...
Run program.
Thanks
Solved!
Go to Solution.When an NI 73xx motion control board is not initialized (e. g. after a power cycle or a board reset), the board is in Power-Up Reset state. The initialization routine needs to reset this flag to prepare the board for normal operation. You can read the Power-Up Reset flag with flex_read_csr_rtn().
I hope this helps,
Jochen Klier
National Instruments -
View_maintenance_call
Hello,
I want to use fm view_maintenance_call to update a table. But I want to pass one of the key fields from the parameters of the selection screen of my program. Is it possible to display this field with the value from program's selection screen and to lock it against changes. ie. the table has 3 fields to be updated, value of one of the fields will be read from the selection screen and it will be display only in SM31/SM30.
Is it possible?
Thx in advance,
Ali<b>I want one field to be display only. for the rest of the fields in the record the user must have the chance to make entries.</b>
This is not possible :
Check the below code :
tables: tvdir.
Selection screento table View
selection-screen skip 2.
parameter p_tabnm(30) as listbox visible length 30 obligatory.
selection-screen skip 1.
selection-screen begin of block s1 with frame title text-001.
parameter: p_radio1 radiobutton group g1,
p_radio radiobutton group g1.
selection-screen end of block s1.
Add values to list box
at selection-screen output.
type-pools: vrm.
data: name type vrm_id,
list type vrm_values,
value like line of list.
name = 'P_TABNM'.
refresh list.
value-key = 'V_024'.
value-text = text-002. "'V_024-Purchasing Groups'.
append value to list.
value-key = 'V_T024D'.
value-text = text-003. "'V_T024D-MRP Controllers'.
append value to list.
value-key = 'ZT604'.
value-text = text-004. "'T604-Commodity Codes'.
append value to list.
value-key = 'T179'.
value-text = text-005. "'T179-Product Hierarchies'.
append value to list.
value-key = 'TVM1T'.
value-text = text-006. "'TVM1T-Business Manager'.
append value to list.
value-key = 'TVM2T'.
value-text = text-007. "'TVM2T-Division manager'.
append value to list.
value-key = 'TVM3T'.
value-text = text-008. "'TVM3T-Director'.
append value to list.
value-key = 'V_TVV2'.
value-text = text-009. "'V_TVV2-Customer Group 2'.
append value to list.
call function 'VRM_SET_VALUES'
exporting
id = name
values = list.
start-of-selection.
Get flag of corresponding table view
select single tabname flag from tvdir into tvdir
where tabname = p_tabnm.
Set flag of corresponding table view
if p_radio1 eq 'X'.
if tvdir-flag ne 'X'.
update tvdir set: flag = 'X'
where tabname = p_tabnm.
endif.
endif.
if p_radio eq 'X'.
if tvdir-flag eq 'X'.
update tvdir set: flag = ''
where tabname = p_tabnm.
endif.
endif.
Execute View/Table
call function 'VIEW_MAINTENANCE_CALL'
exporting
action = 'U'
view_name = p_tabnm
exceptions
client_reference = 1
foreign_lock = 2
invalid_action = 3
no_clientindependent_auth = 4
no_database_function = 5
no_editor_function = 6
no_show_auth = 7
no_tvdir_entry = 8
no_upd_auth = 9
only_show_allowed = 10
system_failure = 11
unknown_field_in_dba_sellist = 12
view_not_found = 13
others = 14.
if sy-subrc <> 0.
message id sy-msgid type sy-msgty number sy-msgno
with sy-msgv1 sy-msgv2 sy-msgv3 sy-msgv4.
endif.
Reset flag of corresponding table view
update tvdir set: flag = tvdir-flag
where tabname = p_tabnm.
Depend upon Radio button ,you get pop up window for transport request.
Thanks
Seshu -
Problem during IS-OIL activation transport: "ERROR during DD ACTIVATION"
Dear All,
On Development system, is-oil was previously activated with SFW5
transaction (notes 908007, 874541); afterwards transport was created on
development system and imported on the production system, but
unsuccessfully!
On Production system, we have the following errors on file SLOG0847.GP6:
ERROR: stopping on error 12 during DD ACTIVATION
ERROR: stopping on error 12 during MOVE NAMETABS
Please have a look to the following logs to have a complete view of the problem.
Could you suggest a solution for this problem?
Additionally, a very important question is:
Is it necessary activate IS-OIL with transport in the live system,
or is it possible activate it manually?
Thanks for your cooperation,
Dario Ricci
File SLOG0847.GP6
START imp single GP6 20081118155636 ZRTC4_TM_ADM ensv15xe 20081118155602
INFO TBATG CONVERSION OF GP6 N not needed ZRTC4_TM_ADM ensv15xe 20081118155602
START MOVE NAMETABS GP6 6 20081118155648 ZRTC4_TM_ADM ensv15xe 20081118155602
START tp_getprots GP6 P 20081118155649 ZRTC4_TM_ADM ensv15xe 20081118155602
STOP tp_getprots GP6 P 20081118155705 ZRTC4_TM_ADM ensv15xe 20081118155602
STOP MOVE NAMETABS GP6 6 20081118155705 ZRTC4_TM_ADM ensv15xe 20081118155602
START MAIN IMPORT GP6 I 20081118155705 ZRTC4_TM_ADM ensv15xe 20081118155602
STOP MAIN IMPORT GP6 I 20081118155728 ZRTC4_TM_ADM ensv15xe 20081118155602
INFO TBATG CREATION OF EN GP6 n not needed ZRTC4_TM_ADM ensv15xe 20081118155602
START SET VERSION FLAGS GP6 V 20081118155730 ZRTC4_TM_ADM ensv15xe 20081118155602
START tp_getprots GP6 V 20081118155730 ZRTC4_TM_ADM ensv15xe 20081118155602
STOP tp_getprots GP6 V 20081118155741 ZRTC4_TM_ADM ensv15xe 20081118155602
STOP SET VERSION FLAGS GP6 V 20081118155741 ZRTC4_TM_ADM ensv15xe 20081118155602
START GENERATION OF REPORT GP6 G 20081118155741 ZRTC4_TM_ADM ensv15xe 20081118155602
START tp_getprots GP6 G 20081118155742 ZRTC4_TM_ADM ensv15xe 20081118155602
STOP tp_getprots GP6 G 20081118155752 ZRTC4_TM_ADM ensv15xe 20081118155602
STOP GENERATION OF REPORT GP6 G 20081118155752 ZRTC4_TM_ADM ensv15xe 20081118155602
STOP imp single GP6 0000 20081118155752 ZRTC4_TM_ADM ensv15xe 20081118155602
START imp single GP6 20081118155954 ZRTC4_TM_ADM ensv15xe 20081118155953
INFO TBATG CONVERSION OF GP6 N not needed ZRTC4_TM_ADM ensv15xe 20081118155953
START MOVE NAMETABS GP6 6 20081118155954 ZRTC4_TM_ADM ensv15xe 20081118155953
START tp_getprots GP6 P 20081118155954 ZRTC4_TM_ADM ensv15xe 20081118155953
STOP tp_getprots GP6 P 20081118155958 ZRTC4_TM_ADM ensv15xe 20081118155953
STOP MOVE NAMETABS GP6 6 20081118155958 ZRTC4_TM_ADM ensv15xe 20081118155953
START MAIN IMPORT GP6 I 20081118155958 ZRTC4_TM_ADM ensv15xe 20081118155953
STOP MAIN IMPORT GP6 I 20081118160006 ZRTC4_TM_ADM ensv15xe 20081118155953
INFO TBATG CREATION OF EN GP6 n not needed ZRTC4_TM_ADM ensv15xe 20081118155953
START SET VERSION FLAGS GP6 V 20081118160006 ZRTC4_TM_ADM ensv15xe 20081118155953
START tp_getprots GP6 V 20081118160006 ZRTC4_TM_ADM ensv15xe 20081118155953
STOP tp_getprots GP6 V 20081118160010 ZRTC4_TM_ADM ensv15xe 20081118155953
STOP SET VERSION FLAGS GP6 V 20081118160010 ZRTC4_TM_ADM ensv15xe 20081118155953
STOP imp single GP6 0000 20081118160010 ZRTC4_TM_ADM ensv15xe 20081118155953
START imp single GP6 20081118160242 ZRTC4_TM_ADM ensv15xe 20081118160240
INFO TBATG CONVERSION OF GP6 N not needed ZRTC4_TM_ADM ensv15xe 20081118160240
START MOVE NAMETABS GP6 6 20081118160244 ZRTC4_TM_ADM ensv15xe 20081118160240
START tp_getprots GP6 P 20081118160244 ZRTC4_TM_ADM ensv15xe 20081118160240
STOP tp_getprots GP6 P 20081118160247 ZRTC4_TM_ADM ensv15xe 20081118160240
STOP MOVE NAMETABS GP6 6 20081118160247 ZRTC4_TM_ADM ensv15xe 20081118160240
START MAIN IMPORT GP6 I 20081118160247 ZRTC4_TM_ADM ensv15xe 20081118160240
STOP MAIN IMPORT GP6 I 20081118160252 ZRTC4_TM_ADM ensv15xe 20081118160240
INFO TBATG CREATION OF EN GP6 n not needed ZRTC4_TM_ADM ensv15xe 20081118160240
START SET VERSION FLAGS GP6 V 20081118160253 ZRTC4_TM_ADM ensv15xe 20081118160240
START tp_getprots GP6 V 20081118160253 ZRTC4_TM_ADM ensv15xe 20081118160240
STOP tp_getprots GP6 V 20081118160256 ZRTC4_TM_ADM ensv15xe 20081118160240
STOP SET VERSION FLAGS GP6 V 20081118160256 ZRTC4_TM_ADM ensv15xe 20081118160240
START EXECUTION OF REPORTS GP6 R 20081118160256 ZRTC4_TM_ADM ensv15xe 20081118160240
START tp_getprots GP6 R 20081118160256 ZRTC4_TM_ADM ensv15xe 20081118160240
STOP tp_getprots GP6 R 20081118160333 ZRTC4_TM_ADM ensv15xe 20081118160240
STOP EXECUTION OF REPORTS GP6 R 20081118160333 ZRTC4_TM_ADM ensv15xe 20081118160240
STOP imp single GP6 0000 20081118160333 ZRTC4_TM_ADM ensv15xe 20081118160240
START imp single GP6 20081118160502 ZRTC4_TM_ADM ensv15xe 20081118160458
INFO TBATG CONVERSION OF GP6 N not needed ZRTC4_TM_ADM ensv15xe 20081118160458
START MOVE NAMETABS GP6 6 20081118160503 ZRTC4_TM_ADM ensv15xe 20081118160458
START tp_getprots GP6 P 20081118160503 ZRTC4_TM_ADM ensv15xe 20081118160458
STOP tp_getprots GP6 P 20081118160519 ZRTC4_TM_ADM ensv15xe 20081118160458
STOP MOVE NAMETABS GP6 6 20081118160519 ZRTC4_TM_ADM ensv15xe 20081118160458
START MAIN IMPORT GP6 I 20081118160519 ZRTC4_TM_ADM ensv15xe 20081118160458
STOP MAIN IMPORT GP6 I 20081118160551 ZRTC4_TM_ADM ensv15xe 20081118160458
INFO TBATG CREATION OF EN GP6 n not needed ZRTC4_TM_ADM ensv15xe 20081118160458
START SET VERSION FLAGS GP6 V 20081118160552 ZRTC4_TM_ADM ensv15xe 20081118160458
START tp_getprots GP6 V 20081118160552 ZRTC4_TM_ADM ensv15xe 20081118160458
STOP tp_getprots GP6 V 20081118160604 ZRTC4_TM_ADM ensv15xe 20081118160458
STOP SET VERSION FLAGS GP6 V 20081118160604 ZRTC4_TM_ADM ensv15xe 20081118160458
START EXECUTION OF REPORTS GP6 R 20081118160605 ZRTC4_TM_ADM ensv15xe 20081118160458
START tp_getprots GP6 R 20081118160605 ZRTC4_TM_ADM ensv15xe 20081118160458
STOP tp_getprots GP6 R 20081118160628 ZRTC4_TM_ADM ensv15xe 20081118160458
STOP EXECUTION OF REPORTS GP6 R 20081118160628 ZRTC4_TM_ADM ensv15xe 20081118160458
STOP imp single GP6 0000 20081118160628 ZRTC4_TM_ADM ensv15xe 20081118160458
START imp single GP6 20081118160804 ZRTC4_TM_ADM ensv15xe 20081118160804
INFO TBATG CONVERSION OF GP6 N not needed ZRTC4_TM_ADM ensv15xe 20081118160804
START MOVE NAMETABS GP6 6 20081118160805 ZRTC4_TM_ADM ensv15xe 20081118160804
START tp_getprots GP6 P 20081118160805 ZRTC4_TM_ADM ensv15xe 20081118160804
STOP tp_getprots GP6 P 20081118160808 ZRTC4_TM_ADM ensv15xe 20081118160804
STOP MOVE NAMETABS GP6 6 20081118160808 ZRTC4_TM_ADM ensv15xe 20081118160804
START MAIN IMPORT GP6 I 20081118160808 ZRTC4_TM_ADM ensv15xe 20081118160804
STOP MAIN IMPORT GP6 I 20081118160810 ZRTC4_TM_ADM ensv15xe 20081118160804
INFO TBATG CREATION OF EN GP6 n not needed ZRTC4_TM_ADM ensv15xe 20081118160804
START SET VERSION FLAGS GP6 V 20081118160810 ZRTC4_TM_ADM ensv15xe 20081118160804
START tp_getprots GP6 V 20081118160810 ZRTC4_TM_ADM ensv15xe 20081118160804
STOP tp_getprots GP6 V 20081118160813 ZRTC4_TM_ADM ensv15xe 20081118160804
STOP SET VERSION FLAGS GP6 V 20081118160813 ZRTC4_TM_ADM ensv15xe 20081118160804
START EXECUTION OF REPORTS GP6 R 20081118160813 ZRTC4_TM_ADM ensv15xe 20081118160804
START tp_getprots GP6 R 20081118160813 ZRTC4_TM_ADM ensv15xe 20081118160804
STOP tp_getprots GP6 R 20081118160814 ZRTC4_TM_ADM ensv15xe 20081118160804
STOP EXECUTION OF REPORTS GP6 R 20081118160814 ZRTC4_TM_ADM ensv15xe 20081118160804
STOP imp single GP6 0000 20081118160814 ZRTC4_TM_ADM ensv15xe 20081118160804
START imp single GP6 20081118160940 ZRTC4_TM_ADM ensv15xe 20081118160940
START DD IMPORT GP6 H 20081118160940 ZRTC4_TM_ADM ensv15xe 20081118160940
STOP DD IMPORT GP6 H 20081118160947 ZRTC4_TM_ADM ensv15xe 20081118160940
START DD ACTIVATION GP6 A 20081118160947 ZRTC4_TM_ADM ensv15xe 20081118160940
START tp_getprots GP6 J 20081118160947 ZRTC4_TM_ADM ensv15xe 20081118160940
STOP tp_getprots GP6 J 20081118161103 ZRTC4_TM_ADM ensv15xe 20081118160940
STOP DD ACTIVATION GP6 A 20081118161104 ZRTC4_TM_ADM ensv15xe 20081118160940
START DISTRIBUTION OF DD-O GP6 S 20081118161104 ZRTC4_TM_ADM ensv15xe 20081118160940
START tp_getprots GP6 S 20081118161104 ZRTC4_TM_ADM ensv15xe 20081118160940
STOP tp_getprots GP6 S 20081118161107 ZRTC4_TM_ADM ensv15xe 20081118160940
STOP DISTRIBUTION OF DD-O GP6 S 20081118161107 ZRTC4_TM_ADM ensv15xe 20081118160940
INFO TBATG CONVERSION OF GP6 N not needed ZRTC4_TM_ADM ensv15xe 20081118160940
START MOVE NAMETABS GP6 6 20081118161107 ZRTC4_TM_ADM ensv15xe 20081118160940
START tp_getprots GP6 P 20081118161107 ZRTC4_TM_ADM ensv15xe 20081118160940
STOP tp_getprots GP6 P 20081118161113 ZRTC4_TM_ADM ensv15xe 20081118160940
STOP MOVE NAMETABS GP6 6 20081118161113 ZRTC4_TM_ADM ensv15xe 20081118160940
START MAIN IMPORT GP6 I 20081118161113 ZRTC4_TM_ADM ensv15xe 20081118160940
STOP MAIN IMPORT GP6 I 20081118161115 ZRTC4_TM_ADM ensv15xe 20081118160940
INFO TBATG CREATION OF EN GP6 n not needed ZRTC4_TM_ADM ensv15xe 20081118160940
START SET VERSION FLAGS GP6 V 20081118161115 ZRTC4_TM_ADM ensv15xe 20081118160940
START tp_getprots GP6 V 20081118161115 ZRTC4_TM_ADM ensv15xe 20081118160940
STOP tp_getprots GP6 V 20081118161116 ZRTC4_TM_ADM ensv15xe 20081118160940
STOP SET VERSION FLAGS GP6 V 20081118161116 ZRTC4_TM_ADM ensv15xe 20081118160940
STOP imp single GP6 0000 20081118161117 ZRTC4_TM_ADM ensv15xe 20081118160940
START imp single GP6 20081118161224 ZRTC4_TM_ADM ensv15xe 20081118161224
INFO TBATG CONVERSION OF GP6 N not needed ZRTC4_TM_ADM ensv15xe 20081118161224
START MOVE NAMETABS GP6 6 20081118161224 ZRTC4_TM_ADM ensv15xe 20081118161224
START tp_getprots GP6 P 20081118161225 ZRTC4_TM_ADM ensv15xe 20081118161224
STOP tp_getprots GP6 P 20081118161226 ZRTC4_TM_ADM ensv15xe 20081118161224
STOP MOVE NAMETABS GP6 6 20081118161226 ZRTC4_TM_ADM ensv15xe 20081118161224
START MAIN IMPORT GP6 I 20081118161226 ZRTC4_TM_ADM ensv15xe 20081118161224
STOP MAIN IMPORT GP6 I 20081118161239 ZRTC4_TM_ADM ensv15xe 20081118161224
INFO TBATG CREATION OF EN GP6 n not needed ZRTC4_TM_ADM ensv15xe 20081118161224
START SET VERSION FLAGS GP6 V 20081118161240 ZRTC4_TM_ADM ensv15xe 20081118161224
START tp_getprots GP6 V 20081118161240 ZRTC4_TM_ADM ensv15xe 20081118161224
STOP tp_getprots GP6 V 20081118161241 ZRTC4_TM_ADM ensv15xe 20081118161224
STOP SET VERSION FLAGS GP6 V 20081118161241 ZRTC4_TM_ADM ensv15xe 20081118161224
START EXECUTION OF REPORTS GP6 R 20081118161241 ZRTC4_TM_ADM ensv15xe 20081118161224
START tp_getprots GP6 R 20081118161241 ZRTC4_TM_ADM ensv15xe 20081118161224
STOP tp_getprots GP6 R 20081118161318 ZRTC4_TM_ADM ensv15xe 20081118161224
STOP EXECUTION OF REPORTS GP6 R 20081118161318 ZRTC4_TM_ADM ensv15xe 20081118161224
STOP imp single GP6 0000 20081118161318 ZRTC4_TM_ADM ensv15xe 20081118161224
START imp single GP6 20081118174057 ZRTC4_TM_ADM ensv15xe 20081118174057
INFO TBATG CONVERSION OF GP6 N not needed ZRTC4_TM_ADM ensv15xe 20081118174057
START MOVE NAMETABS GP6 6 20081118174057 ZRTC4_TM_ADM ensv15xe 20081118174057
START tp_getprots GP6 P 20081118174057 ZRTC4_TM_ADM ensv15xe 20081118174057
STOP tp_getprots GP6 P 20081118174058 ZRTC4_TM_ADM ensv15xe 20081118174057
STOP MOVE NAMETABS GP6 6 20081118174058 ZRTC4_TM_ADM ensv15xe 20081118174057
START MAIN IMPORT GP6 I 20081118174059 ZRTC4_TM_ADM ensv15xe 20081118174057
STOP MAIN IMPORT GP6 I 20081118174100 ZRTC4_TM_ADM ensv15xe 20081118174057
INFO TBATG CREATION OF EN GP6 n not needed ZRTC4_TM_ADM ensv15xe 20081118174057
START SET VERSION FLAGS GP6 V 20081118174100 ZRTC4_TM_ADM ensv15xe 20081118174057
START tp_getprots GP6 V 20081118174100 ZRTC4_TM_ADM ensv15xe 20081118174057
STOP tp_getprots GP6 V 20081118174101 ZRTC4_TM_ADM ensv15xe 20081118174057
STOP SET VERSION FLAGS GP6 V 20081118174101 ZRTC4_TM_ADM ensv15xe 20081118174057
STOP imp single GP6 0000 20081118174101 ZRTC4_TM_ADM ensv15xe 20081118174057
START imp single GP6 20081118174102 ZRTC4_TM_ADM ensv15xe 20081118174102
INFO TBATG CONVERSION OF GP6 N not needed ZRTC4_TM_ADM ensv15xe 20081118174102
START MOVE NAMETABS GP6 6 20081118174102 ZRTC4_TM_ADM ensv15xe 20081118174102
START tp_getprots GP6 P 20081118174102 ZRTC4_TM_ADM ensv15xe 20081118174102
STOP tp_getprots GP6 P 20081118174103 ZRTC4_TM_ADM ensv15xe 20081118174102
STOP MOVE NAMETABS GP6 6 20081118174103 ZRTC4_TM_ADM ensv15xe 20081118174102
START MAIN IMPORT GP6 I 20081118174103 ZRTC4_TM_ADM ensv15xe 20081118174102
STOP MAIN IMPORT GP6 I 20081118174104 ZRTC4_TM_ADM ensv15xe 20081118174102
INFO TBATG CREATION OF EN GP6 n not needed ZRTC4_TM_ADM ensv15xe 20081118174102
START SET VERSION FLAGS GP6 V 20081118174104 ZRTC4_TM_ADM ensv15xe 20081118174102
START tp_getprots GP6 V 20081118174104 ZRTC4_TM_ADM ensv15xe 20081118174102
STOP tp_getprots GP6 V 20081118174106 ZRTC4_TM_ADM ensv15xe 20081118174102
STOP SET VERSION FLAGS GP6 V 20081118174106 ZRTC4_TM_ADM ensv15xe 20081118174102
START EXECUTION OF REPORTS GP6 R 20081118174106 ZRTC4_TM_ADM ensv15xe 20081118174102
START tp_getprots GP6 R 20081118174106 ZRTC4_TM_ADM ensv15xe 20081118174102
STOP tp_getprots GP6 R 20081118174109 ZRTC4_TM_ADM ensv15xe 20081118174102
STOP EXECUTION OF REPORTS GP6 R 20081118174109 ZRTC4_TM_ADM ensv15xe 20081118174102
STOP imp single GP6 0000 20081118174109 ZRTC4_TM_ADM ensv15xe 20081118174102
START imp single GP6 20081120123017 gp6adm ensv15xe 200811201230160076ef
START DD IMPORT GP6 H 20081120123017 gp6adm ensv15xe 200811201230160076ef
STOP DD IMPORT GP6 H 20081120123019 gp6adm ensv15xe 200811201230160076ef
START DD ACTIVATION GP6 A 20081120123019 gp6adm ensv15xe 200811201230160076ef
START tp_getprots GP6 J 20081120123019 gp6adm ensv15xe 200811201230160076ef
ERROR GD6K902991 GP6 A 0012 20081120124325 SUPTECENI gp6adm ensv15xe 200811201230160076ef
STOP tp_getprots GP6 J 20081120124335 gp6adm ensv15xe 200811201230160076ef
STOP DD ACTIVATION GP6 A 20081120124335 gp6adm ensv15xe 200811201230160076ef
ERROR: stopping on error 12 during DD ACTIVATION
STOP imp single GP6 0012 20081120124335 gp6adm ensv15xe 200811201230160076ef
START imp single GP6 20081120132937 gp6adm ensv15xe 2008112013293600060e
START DD IMPORT GP6 H 20081120132937 gp6adm ensv15xe 2008112013293600060e
STOP DD IMPORT GP6 H 20081120132939 gp6adm ensv15xe 2008112013293600060e
START DD ACTIVATION GP6 A 20081120132939 gp6adm ensv15xe 2008112013293600060e
START tp_getprots GP6 J 20081120132939 gp6adm ensv15xe 2008112013293600060e
STOP tp_getprots GP6 J 20081120132942 gp6adm ensv15xe 2008112013293600060e
STOP DD ACTIVATION GP6 A 20081120132942 gp6adm ensv15xe 2008112013293600060e
START DISTRIBUTION OF DD-O GP6 S 20081120132943 gp6adm ensv15xe 2008112013293600060e
START tp_getprots GP6 S 20081120132943 gp6adm ensv15xe 2008112013293600060e
STOP tp_getprots GP6 S 20081120133028 gp6adm ensv15xe 2008112013293600060e
STOP DISTRIBUTION OF DD-O GP6 S 20081120133028 gp6adm ensv15xe 2008112013293600060e
START TBATG CONVERSION OF GP6 N 20081120133028 gp6adm ensv15xe 2008112013293600060e
START tp_getprots GP6 N 20081120133028 gp6adm ensv15xe 2008112013293600060e
STOP tp_getprots GP6 N 20081120133031 gp6adm ensv15xe 2008112013293600060e
STOP TBATG CONVERSION OF GP6 N 20081120133031 gp6adm ensv15xe 2008112013293600060e
START MOVE NAMETABS GP6 6 20081120133031 gp6adm ensv15xe 2008112013293600060e
START tp_getprots GP6 P 20081120133031 gp6adm ensv15xe 2008112013293600060e
ERROR ALL GP6 6 0012 20081120134632 gp6adm ensv15xe 2008112013293600060e
STOP tp_getprots GP6 P 20081120134637 gp6adm ensv15xe 2008112013293600060e
STOP MOVE NAMETABS GP6 6 20081120134637 gp6adm ensv15xe 2008112013293600060e
ERROR: stopping on error 12 during MOVE NAMETABS
STOP imp single GP6 0012 20081120134637 gp6adm ensv15xe 2008112013293600060e
START imp single GP6 20081121160246 ZRTC4_TM_ADM ensv15xe 20081121160245
INFO TBATG CONVERSION OF GP6 N not needed ZRTC4_TM_ADM ensv15xe 20081121160245
START MOVE NAMETABS GP6 6 20081121160247 ZRTC4_TM_ADM ensv15xe 20081121160245
START tp_getprots GP6 P 20081121160247 ZRTC4_TM_ADM ensv15xe 20081121160245
STOP tp_getprots GP6 P 20081121160251 ZRTC4_TM_ADM ensv15xe 20081121160245
STOP MOVE NAMETABS GP6 6 20081121160251 ZRTC4_TM_ADM ensv15xe 20081121160245
START MAIN IMPORT GP6 I 20081121160251 ZRTC4_TM_ADM ensv15xe 20081121160245
STOP MAIN IMPORT GP6 I 20081121160257 ZRTC4_TM_ADM ensv15xe 20081121160245
INFO TBATG CREATION OF EN GP6 n not needed ZRTC4_TM_ADM ensv15xe 20081121160245
START SET VERSION FLAGS GP6 V 20081121160257 ZRTC4_TM_ADM ensv15xe 20081121160245
START tp_getprots GP6 V 20081121160257 ZRTC4_TM_ADM ensv15xe 20081121160245
STOP tp_getprots GP6 V 20081121160300 ZRTC4_TM_ADM ensv15xe 20081121160245
STOP SET VERSION FLAGS GP6 V 20081121160300 ZRTC4_TM_ADM ensv15xe 20081121160245
START EXECUTION OF REPORTS GP6 R 20081121160301 ZRTC4_TM_ADM ensv15xe 20081121160245
START tp_getprots GP6 R 20081121160301 ZRTC4_TM_ADM ensv15xe 20081121160245
STOP tp_getprots GP6 R 20081121160311 ZRTC4_TM_ADM ensv15xe 20081121160245
STOP EXECUTION OF REPORTS GP6 R 20081121160311 ZRTC4_TM_ADM ensv15xe 20081121160245
STOP imp single GP6 0000 20081121160311 ZRTC4_TM_ADM ensv15xe 20081121160245
excerpt of File P081120.GP6
1 ETP199X######################################
1 ETP172 MOVE OF NAMETABS
1 ETP101 transport order : "ALL"
1 ETP102 system : "GP6"
1 ETP108 tp path : "tp"
1 ETP109 version and release : "372.04.29" "700"
1 ETP198
3 ETP399XMove Nametabs started in batch mode.
2 ETP399 processing modeflag 'A'
3 ETP301 -
3 ETP399 Didb-lib Version : 1.3
3 ETP399
3 ETP399 OPTIONS:
3 ETP399
3 ETP399 PRINT ONLY = no
3 ETP399 iNT-TIMESTAMP RESET = no
3 ETP399 DELETE iNT = yes
3 ETP399 DELETE iNT FIELDS = yes
3 ETP399 ACTIVATE iNT = yes
3 ETP399 TOLERATE UNCRITICAL STMTs = no
3 ETP399 COMPARE TIMESTAMPs IN MV40-Op. = yes
3 ETP399 SUPPRESS COMMITs = no
3 ETP399 CALL EXTERNAL NT_SYNC = no
3 ETP399 DONT TOUCH dep. LOADS = no
3 ETP399 RESET FLAG DBTABPOS = no
3 ETP399 protocol output to file = yes, /usr/sap/trans/tmp/P081120.GP6
3 ETP301 -
3 ETP399 PARAMETERS:
3 ETP399
3 ETP399 '
2 ETP301 -
2 ETP364 Begin: Act. of Shadow-Nametabs ("2008/11/20 13:30:32")
2 ETP301 -
2 ETP301 -
2 ETP338XActivation of Shadownametabs
2 ETP301 -
3 ETP379Xactivating Nametab "/BEV1/SR_S_VBAP_OUTPUT":
2 ETP399 >> Name of inactive nametab to read : DDXTT
2 ETP399 >> Format of inactive nametab to read: 5.0
3 ETP380 succeeded
3 ETP379Xactivating Nametab "/BEV1/SR_T_VBAP":
3 ETP380 succeeded
3 ETP379Xactivating Nametab "/BEV1/TSRV43AAS":
3 ETP380 succeeded
3 ETP379Xactivating Nametab "/BEV3/CHBDKR":
3 ETP380 succeeded
3 ETP379Xactivating Nametab "/BEV3/CHBPR":
3 ETP380 succeeded
3 ETP379Xactivating Nametab "/CWM/ACCIT":
3 ETP380 succeeded
3 ETP379Xactivating Nametab "/CWM/ADD_FIELDS_A":
3 ETP380 succeeded
3 ETP379Xactivating Nametab "/CWM/AFFW":
3 ETP380 succeeded
3 ETP379Xactivating Nametab "/CWM/ALVHD":
3 ETP380 succeeded
3 ETP379Xactivating Nametab "/CWM/APPL_SD_ME_READ_HISTORY":
3 ETP380 succeeded
3 ETP379Xactivating Nametab "/CWM/ARSEG":
3 ETP380 succeeded
3 ETP379Xactivating Nametab "/CWM/AUFM":
3 ETP380 succeeded
3 ETP379Xactivating Nametab "/CWM/BBEFU":
3 ETP380 succeeded
3 ETP379Xactivating Nametab "/CWM/BEREIT":
3 ETP380 succeeded
3 ETP379Xactivating Nametab "/CWM/BEREITADD":
3 ETP380 succeeded
etc etc ..
3 ETP379Xactivating Nametab "EMARA":
1AETR012XProgram terminated (job: "RDDMNTAB", no.: "13303200")
1AEPU320 See job log"RDDMNTAB""13303200""GP6"
3 ETP399XMove Nametabs started in batch mode.
2 ETP399 processing modeflag 'A'
2 ETP301 -
2 ETP364 Begin: Act. of Shadow-Nametabs ("2008/11/20 13:34:58")
2 ETP301 -
2 ETP301 -
2 ETP338XActivation of Shadownametabs
2 ETP301 -
3 ETP379Xactivating Nametab "EMARA":
1AETR012XProgram terminated (job: "RDDMNTAB", no.: "13345800")
1AEPU320 See job log"RDDMNTAB""13345800""GP6"
3 ETP399XMove Nametabs started in batch mode.
2 ETP399 processing modeflag 'A'
3 ETP301 -
3 ETP399 Didb-lib Version : 1.3
3 ETP399
3 ETP399 OPTIONS:
3 ETP399
3 ETP399 PRINT ONLY = no
3 ETP399 iNT-TIMESTAMP RESET = no
3 ETP399 DELETE iNT = yes
3 ETP399 DELETE iNT FIELDS = yes
3 ETP399 ACTIVATE iNT = yes
3 ETP399 TOLERATE UNCRITICAL STMTs = no
3 ETP399 COMPARE TIMESTAMPs IN MV40-Op. = yes
3 ETP399 SUPPRESS COMMITs = no
3 ETP399 CALL EXTERNAL NT_SYNC = no
3 ETP399 DONT TOUCH dep. LOADS = no
3 ETP399 RESET FLAG DBTABPOS = no
3 ETP399 protocol output to file = yes, /usr/sap/trans/tmp/P081120.GP6
3 ETP301 -
3 ETP399 PARAMETERS:
3 ETP399
3 ETP399 '
2 ETP301 -
2 ETP364 Begin: Act. of Shadow-Nametabs ("2008/11/20 13:36:37")
2 ETP301 -
2 ETP301 -
2 ETP338XActivation of Shadownametabs
2 ETP301 -
3 ETP379Xactivating Nametab "EMARA":
2 ETP399 >> Name of inactive nametab to read : DDXTT
2 ETP399 >> Format of inactive nametab to read: 5.0
3 ETP380 succeeded
3 ETP379Xactivating Nametab "EMARC":
3 ETP380 succeeded
3 ETP379Xactivating Nametab "EMARC3":
3 ETP380 succeeded
3 ETP379Xactivating Nametab "EMARM":
3 ETP380 succeeded
3 ETP379Xactivating Nametab "EMBEW7":
3 ETP380 succeeded
etc etc..
2 ETP399 -
DB-COMMIT() -
3 ETP399 CREATE VIEW "V_OIJTS"
3 ETP399 ("MANDT",
3 ETP399 "TSYST",
3 ETP399 "SPRAS",
3 ETP399 "VSART_TXT",
3 ETP399 "VKTRA_TXT",
3 ETP399 "TSNAM",
3 ETP399 "BOOKTS",
3 ETP399 "VSART",
3 ETP399 "VKTRA",
3 ETP399 "SHTYPE",
3 ETP399 "BUSTYP")
3 ETP399 AS SELECT
3 ETP399 T1."MANDT",
3 ETP399 T1."TSYST",
3 ETP399 T4."SPRAS",
3 ETP399 T4."BEZEI",
3 ETP399 T5."BEZEI",
3 ETP399 T1."TSNAM",
3 ETP399 T1."BOOKTS",
3 ETP399 T1."VSART",
3 ETP399 T1."VKTRA",
3 ETP399 T1."SHTYPE",
3 ETP399 T1."BUSTYP"
3 ETP399 FROM
3 ETP399 "OIJTS" T1,
3 ETP399 "T173" T2,
3 ETP399 "TVTR" T3,
3 ETP399 "T173T" T4,
3 ETP399 "TVTRT" T5
3 ETP399 WHERE
3 ETP399 T2."MANDT" = T1."MANDT" AND
3 ETP399 T2."VSART" = T1."VSART" AND
3 ETP399 T3."MANDT" = T2."MANDT" AND
3 ETP399 T3."VKTRA" = T2."VKTRA" AND
3 ETP399 T2."MANDT" = T4."MANDT" AND
3 ETP399 T2."VSART" = T4."VSART" AND
3 ETP399 T3."MANDT" = T5."MANDT" AND
3 ETP399 T3."VKTRA" = T5."VKTRA" AND
3 ETP399 T5."SPRAS" = T4."SPRAS"
3 ETP399
3 ETP356 executed ( "00:00:00" )
2 ETP399 -
DB-COMMIT() -
3 ETP378 13:46:31: succeeded, DDL executed
3 ETP359 "V_OIJTS " total time = 00:00:00
3 ETP379X13:46:31: activating Nametab "V_OIJTSLOC":
3 ETP355Xstatements:
3 ETP399 DROP VIEW "V_OIJTSLOC"
3 ETP399
3 ETP356 executed ( "00:00:00" )
2 ETP399 -
DB-COMMIT() -
3 ETP399 CREATE VIEW "V_OIJTSLOC"
3 ETP399 ("MANDT",
3 ETP399 "TSYST",
3 ETP399 "LOCID",
3 ETP399 "LOCNAM",
3 ETP399 "BLOIND",
3 ETP399 "DELIND",
3 ETP399 "RDACT",
3 ETP399 "TSNAM")
3 ETP399 AS SELECT
3 ETP399 T1."MANDT",
3 ETP399 T1."TSYST",
3 ETP399 T1."LOCID",
3 ETP399 T1."LOCNAM",
3 ETP399 T2."BLOIND",
3 ETP399 T2."DELIND",
3 ETP399 T2."RDACT",
3 ETP399 T3."TSNAM"
3 ETP399 FROM
3 ETP399 "OIJTSLOC" T1,
3 ETP399 "OIJLOC" T2,
3 ETP399 "OIJTS" T3
3 ETP399 WHERE
3 ETP399 T2."MANDT" = T1."MANDT" AND
3 ETP399 T2."LOCID" = T1."LOCID" AND
3 ETP399 T3."MANDT" = T1."MANDT" AND
3 ETP399 T3."TSYST" = T1."TSYST"
3 ETP399
3 ETP356 executed ( "00:00:00" )
2 ETP399 -
DB-COMMIT() -
3 ETP378 13:46:31: succeeded, DDL executed
3 ETP359 "V_OIJTSLOC " total time = 00:00:00
3 ETP379X13:46:31: activating Nametab "V_OIJTSLOCBL":
3 ETP355Xstatements:
3 ETP399 DROP VIEW "V_OIJTSLOCBL"
3 ETP399
2WETP354 13:46:31: Warning: Retcode 512: SQL-error "942" in DDL statement for "V_OIJTSLOCBL
2WETP354 " - IGNORED
2WETP399 SQL-error-Text: "ORA-00942: table or view does not exist"
2 ETP399 -
DB-COMMIT() -
3 ETP399 CREATE VIEW "V_OIJTSLOCBL"
3 ETP399 ("MANDT",
3 ETP399 "TSYST",
3 ETP399 "LOCID",
3 ETP399 "PBLTYP",
3 ETP399 "PLANIND",
3 ETP399 "TSNAM",
3 ETP399 "LOCNAM")
3 ETP399 AS SELECT
3 ETP399 T1."MANDT",
3 ETP399 T1."TSYST",
3 ETP399 T3."LOCID",
3 ETP399 T2."PBLTYP",
3 ETP399 T5."PLANIND",
3 ETP399 T1."TSNAM",
3 ETP399 T4."LOCNAM"
3 ETP399 FROM
3 ETP399 "OIJTS" T1,
3 ETP399 "OIFSPBL" T2,
3 ETP399 "OIJTSLOC" T3,
3 ETP399 "OIJLOC" T4,
3 ETP399 "OIFSPBLT" T5
3 ETP399 WHERE
3 ETP399 T1."MANDT" = T3."MANDT" AND
3 ETP399 T1."TSYST" = T3."TSYST" AND
3 ETP399 T4."MANDT" = T3."MANDT" AND
3 ETP399 T4."LOCID" = T3."LOCID" AND
3 ETP399 T4."MANDT" = T2."MANDT" AND
3 ETP399 T4."PBLNR" = T2."PBLNR" AND
3 ETP399 T5."MANDT" = T2."MANDT" AND
3 ETP399 T5."PBLTYP" = T2."PBLTYP"
3 ETP399
3 ETP356 executed ( "00:00:00" )
2 ETP399 -
DB-COMMIT() -
3 ETP378 13:46:31: succeeded, DDL executed
3 ETP359 "V_OIJTSLOCBL " total time = 00:00:00
3 ETP379X13:46:31: activating Nametab "V_OIRBPBLMAT":
3 ETP355Xstatements:
3 ETP399 DROP VIEW "V_OIRBPBLMAT"
3 ETP399
2WETP354 13:46:31: Warning: Retcode 512: SQL-error "942" in DDL statement for "V_OIRBPBLMAT
2WETP354 " - IGNORED
2WETP399 SQL-error-Text: "ORA-00942: table or view does not exist"
2 ETP399 -
DB-COMMIT() -
3 ETP399 CREATE VIEW "V_OIRBPBLMAT"
3 ETP399 ("MANDT",
3 ETP399 "PBLNR",
3 ETP399 "RNBT",
3 ETP399 "MATHANDGRP",
3 ETP399 "SEQNR",
3 ETP399 "MATNR")
3 ETP399 AS SELECT
3 ETP399 T1."MANDT",
3 ETP399 T1."PBLNR",
3 ETP399 T1."RNBT",
3 ETP399 T1."MATHANDGRP",
3 ETP399 T2."SEQNR",
3 ETP399 T2."MATNR"
3 ETP399 FROM
3 ETP399 "OIRBPBLB" T1,
3 ETP399 "OIRBMATMET" T2
3 ETP399 WHERE
3 ETP399 T1."MANDT" = T2."MANDT" AND
3 ETP399 T1."PBLNR" = T2."PBLNR" AND
3 ETP399 T1."RNBT" = T2."RNBT"
3 ETP399
3 ETP356 executed ( "00:00:01" )
2 ETP399 -
DB-COMMIT() -
3 ETP378 13:46:32: succeeded, DDL executed
3 ETP359 "V_OIRBPBLMAT " total time = 00:00:01
3 ETP379X13:46:32: activating Nametab "V_VGNVA":
3 ETP355Xstatements:
3 ETP399 DROP VIEW "V_VGNVA"
3 ETP399
2WETP354 13:46:32: Warning: Retcode 512: SQL-error "942" in DDL statement for "V_VGNVA
2WETP354 " - IGNORED
2WETP399 SQL-error-Text: "ORA-00942: table or view does not exist"
2 ETP399 -
DB-COMMIT() -
3 ETP399 CREATE VIEW "V_VGNVA"
3 ETP399 ("MANDT",
3 ETP399 "VSNMR",
3 ETP399 "VSKAT",
3 ETP399 "VSINACT",
3 ETP399 "EXT_AUFNR",
3 ETP399 "AUTYP",
3 ETP399 "VORNR",
3 ETP399 "LTXA1")
3 ETP399 AS SELECT
3 ETP399 T1."MANDT",
3 ETP399 T1."VSNMR",
3 ETP399 T6."VSKAT",
3 ETP399 T6."VSINACT",
3 ETP399 T1."EXT_AUFNR",
3 ETP399 T1."AUTYP",
3 ETP399 T3."VORNR",
3 ETP399 T3."LTXA1"
3 ETP399 FROM
3 ETP399 "VSAUFK_CN" T1,
3 ETP399 "VSAFKO_CN" T2,
3 ETP399 "VSAFVC_CN" T3,
3 ETP399 "VSPRPS_CN" T4,
3 ETP399 "VSPROJ_CN" T5,
3 ETP399 "VSKOPF" T6
3 ETP399 WHERE
3 ETP399 T1."MANDT" = T2."MANDT" AND
3 ETP399 T1."MANDT" = T3."MANDT" AND
3 ETP399 T1."MANDT" = T4."MANDT" AND
3 ETP399 T1."MANDT" = T5."MANDT" AND
3 ETP399 T1."MANDT" = T6."MANDT" AND
3 ETP399 T1."VSNMR" = T2."VSNMR" AND
3 ETP399 T1."VSNMR" = T3."VSNMR" AND
3 ETP399 T1."VSNMR" = T4."VSNMR" AND
3 ETP399 T1."VSNMR" = T5."VSNMR" AND
3 ETP399 T1."VSNMR" = T6."VSNMR" AND
3 ETP399 T2."AUFNR" = T1."AUFNR" AND
3 ETP399 T3."AUFPL" = T2."AUFPL" AND
3 ETP399 T1."PSPEL" = T4."PSPNR" AND
3 ETP399 T5."PSPNR" = T4."PSPHI" AND
3 ETP399 T6."OBJNR_PD" = T5."OBJNR"
3 ETP399 AND
3 ETP399 T3."INACT"
3 ETP399 = ' '
3 ETP399
3 ETP356 executed ( "00:00:00" )
2 ETP399 -
DB-COMMIT() -
3 ETP378 13:46:32: succeeded, DDL executed
3 ETP359 "V_VGNVA " total time = 00:00:00
3 ETP379X13:46:32: activating Nametab "V_VGNWA":
3 ETP355Xstatements:
3 ETP399 DROP VIEW "V_VGNWA"
3 ETP399
2WETP354 13:46:32: Warning: Retcode 512: SQL-error "942" in DDL statement for "V_VGNWA
2WETP354 " - IGNORED
2WETP399 SQL-error-Text: "ORA-00942: table or view does not exist"
2 ETP399 -
DB-COMMIT() -
3 ETP399 CREATE VIEW "V_VGNWA"
3 ETP399 ("MANDT",
3 ETP399 "VSNMR",
3 ETP399 "AUFNR",
3 ETP399 "AUTYP",
3 ETP399 "VORNR",
3 ETP399 "LTXA1")
3 ETP399 AS SELECT
3 ETP399 T1."MANDT",
3 ETP399 T1."VSNMR",
3 ETP399 T1."EXT_AUFNR",
3 ETP399 T1."AUTYP",
3 ETP399 T3."VORNR",
3 ETP399 T3."LTXA1"
3 ETP399 FROM
3 ETP399 "VSAUFK_CN" T1,
3 ETP399 "VSAFKO_CN" T2,
3 ETP399 "VSAFVC_CN" T3
3 ETP399 WHERE
3 ETP399 T1."MANDT" = T2."MANDT" AND
3 ETP399 T1."MANDT" = T3."MANDT" AND
3 ETP399 T1."VSNMR" = T2."VSNMR" AND
3 ETP399 T1."VSNMR" = T3."VSNMR" AND
3 ETP399 T2."AUFNR" = T1."AUFNR" AND
3 ETP399 T3."AUFPL" = T2."AUFPL"
3 ETP399
3 ETP356 executed ( "00:00:00" )
2 ETP399 -
DB-COMMIT() -
3 ETP378 13:46:32: succeeded, DDL executed
3 ETP359 "V_VGNWA " total time = 00:00:00
3 ETP379X13:46:32: activating Nametab "V_VSAFVC_ORG":
3 ETP355Xstatements:
3 ETP399 DROP VIEW "V_VSAFVC_ORG"
3 ETP399
2WETP354 13:46:32: Warning: Retcode 512: SQL-error "942" in DDL statement for "V_VSAFVC_ORG
2WETP354 " - IGNORED
2WETP399 SQL-error-Text: "ORA-00942: table or view does not exist"
2 ETP399 -
DB-COMMIT() -
3 ETP399 CREATE VIEW "V_VSAFVC_ORG"
3 ETP399 ("MANDT",
3 ETP399 "VSNMR",
3 ETP399 "AUFPL",
3 ETP399 "APLZL",
3 ETP399 "ORGAUFPL",
3 ETP399 "ORGAPLZL",
3 ETP399 "INACT")
3 ETP399 AS SELECT
3 ETP399 T1."MANDT",
3 ETP399 T1."VSNMR",
3 ETP399 T1."AUFPL",
3 ETP399 T1."APLZL",
3 ETP399 T1."ORGAUFPL",
3 ETP399 T1."ORGAPLZL",
3 ETP399 T1."INACT"
3 ETP399 FROM
3 ETP399 "VSAFVC_CN" T1
3 ETP399
3 ETP356 executed ( "00:00:00" )
2 ETP399 -
DB-COMMIT() -
3 ETP378 13:46:32: succeeded, DDL executed
3 ETP359 "V_VSAFVC_ORG " total time = 00:00:00
2 ETP301 -
3 ETP361 "90" Shadow-Nametabs activated, DDL executed
3 ETP362 "0" Shadow-Nametab activations failed
2 ETP360 Begin: Act. of Shadow-Nametabs with DDL ("2008/11/20 13:46:25")
2 ETP363 End : Act. of Shadow-Nametabs with DDL ("2008/11/20 13:46:32")
2 ETP301 -
1 ETP172 MOVE OF NAMETABS
1 ETP110 end date and time : "20081120134632"
1 ETP111 exit code : "12"
1 ETP199 ######################################
Excerpt of file GD6A902991.GP6 (I don't know how it can be useful..)
3 DMC728 Der View muß auf der Datenbank gelöscht und neu angelegt werden
3 DDO525XAktiviere abhängigen View "V_OIJRDSEL2"
3 DMC728 Der View muß auf der Datenbank gelöscht und neu angelegt werden
3 DDO525XAktiviere abhängigen View "V_OIJTS"
1 DDH202 Prüfe abhängige Suchhilfe "OIJ_TSYST"
1 DDH103 Suchhilfe "OIJ_TSYST" ist konsistent
3 DMC763 Schlüsselfeld "TVTRT"-"VKTRA" fehlt
2WDMC732 Alle Felder werden als Schlüsselfeld gewertet
3 DMC728 Der View muß auf der Datenbank gelöscht und neu angelegt werden
3 DDO526 View wurde mit Warnungen aktiviert"V_OIJTS"
3 DDO525XAktiviere abhängigen View "V_OIJTSLOC"
1 DDH202 Prüfe abhängige Suchhilfe "OIJLOCID"
etc etc..
3 DDT402 Append-Struktur "/CWM/WUEB" an Tabelle "WUEB" angefügt
2WDDT191 Erweiterungskat. "3" möglich, aber Include oder Subtyp ist noch unklassif.
3 DDT038 Aktivierung abhängige Tabelle "WUEB" erfolgreich
3 DDT014XAktiviere abhängige Tabelle "ZCXCB"
3 DDT402 Append-Struktur "OILZCXCB" an Tabelle "ZCXCB" angefügt
2WDDT192 Erweiterungskategorie für die Tabelle fehlt
2WDDT193 Erweiterungskategorie für Include oder Subtyp fehlt
3 DDT059 Abhängige Tabelle "ZCXCB" wurde mit Warnungen aktiviert
3 DDO525XAktiviere abhängigen View "M_OIJAA"
1 DDH202 Prüfe abhängige Suchhilfe "OIJAA"
1 DDH103 Suchhilfe "OIJAA" ist konsistent
3 DMC728 Der View muß auf der Datenbank gelöscht und neu angelegt werden
3 DDO525XAktiviere abhängigen View "M_OIJAB"
1 DDH202 Prüfe abhängige Suchhilfe "OIJAB"
1 DDH103 Suchhilfe "OIJAB" ist konsistent
3 DMC728 Der View muß auf der Datenbank gelöscht und neu angelegt werden
3 DDO525XAktiviere abhängigen View "M_OIJAC"
1 DDH202 Prüfe abhängige Suchhilfe "OIJAC"
1 DDH103 Suchhilfe "OIJAC" ist konsistent
3 DMC728 Der View muß auf der Datenbank gelöscht und neu angelegt werden
3 DDO525XAktiviere abhängigen View "V_OIJRDSEL"
2WDMC506 Inkonsistenz beim Referenzfeld zu "V_OIJRDSEL"-"TMAXLOT"
2WDMC506 Inkonsistenz beim Referenzfeld zu "V_OIJRDSEL"-"TMINLOT"
2WDMC506 Inkonsistenz beim Referenzfeld zu "V_OIJRDSEL"-"TINCLOT"
2WDMC506 Inkonsistenz beim Referenzfeld zu "V_OIJRDSEL"-"TMAXINV"
2WDMC506 Inkonsistenz beim Referenzfeld zu "V_OIJRDSEL"-"TTARGET"
etc etc..
3 DDT014XAktiviere abhängige Tabelle "LEDSPD_ATOM_QUANTS"
3 DDT402 Append-Struktur "/CWM/LEDSPD_ATOM_QUANTS" an Tabelle "LEDSPD_ATOM_QUANTS" angefügt
2WDDT192 Erweiterungskategorie für die Tabelle fehlt
2WDDT193 Erweiterungskategorie für Include oder Subtyp fehlt
3 DDT059 Abhängige Tabelle "LEDSPD_ATOM_QUANTS" wurde mit Warnungen aktiviert
3 DDT014XAktiviere abhängige Tabelle "LEDSPD_LIST_ITEM"
3 DDT402 Append-Struktur "/CWM/LEDSPD_LIST_ITEM" an Tabelle "LEDSPD_LIST_ITEM" angefügt
2Hi, Please go and download the log in ST22 in the time of the transporting these object and post here if you have any.
Jey -
XML document structures must start and end within the same entity
Hi there,
I'm working with a client/server application and using SaxParser for reading in xml. I get the SaxParserException: XML document structures must start and end within the same entity. I understand what that means, but it isn't applicable! The xml data being used is well-formed. I checked the well-formedness with Stylus Studio to make sure. Here's the data:
<?xml version='1.0' encoding='UTF-8'?>
<vcmessage>
<vcsource>3</vcsource>
<processevent>16</processevent>
<shape>
<llindex>0</llindex>
<shapetype>9</shapetype>
<shapeproperties>
<shapelocation>
<xcoord>54</xcoord>
<ycoord>184</ycoord>
</shapelocation>
<bounds>
<width>24</width>
<height>24</height>
</bounds>
<fgcolor>
<fgred>0</fgred>
<fggreen>0</fggreen>
<fgblue>0</fgblue>
</fgcolor>
<bgcolor>
<bgred>255</bgred>
<bggreen>255</bggreen>
<bgblue>255</bgblue>
</bgcolor>
<thickness>1</thickness>
<isfilled>false</isfilled>
</shapeproperties>
</shape>
</vcmessage>The parser generally stops around the </bgcolor> tag.
I'm using Eclypse as my IDE. I'm wondering if there's something wrong with it? Or maybe there's something wrong with the class I'm using for reading in the XML? Followng is the class.
Please advise,
Alan
package vcclient;
import java.io.*;
import org.xml.sax.*;
import org.xml.sax.helpers.*;
import javax.xml.parsers.*;
public class XMLDocumentReader extends DefaultHandler
private VCClient client = null;
private Writer out;
private String lineEnd = System.getProperty("line.separator");
private boolean haveSourceType = false;
private boolean haveUserName = false;
private boolean haveMessage = false;
private boolean haveProcessEvent = false;
private boolean haveLinkedListIndex = false;
private boolean haveOpeningShapePropertiesTag = false;
private boolean haveShapeType = false;
private boolean haveOpeningShapeLocationTag = false;
private boolean haveShapeLocation = false;
private boolean haveOpeningXCoordTag = false;
private boolean haveOpeningYCoordTag = false;
private boolean haveOpeningBoundsTag = false;
private boolean haveBoundsWidth = false;
private boolean haveBoundsHeight = false;
private boolean haveOpeningFGColorTag = false;
private boolean haveOpeningBGColorTag = false;
private boolean haveOpeningThicknessTag = false;
private boolean haveOpeningIsFilledTag = false;
private boolean haveOpeningImageDataTag = false;
private boolean haveOpeningTextDataTag = false;
private boolean haveFGRed = false;
private boolean haveFGGreen = false;
private boolean haveFGBlue = false;
private boolean haveBGRed = false;
private boolean haveBGGreen = false;
private boolean haveBGBlue = false;
private boolean haveThickness = false;
private boolean haveIsFilled = false;
private boolean haveImageData = false;
private boolean haveTextData = false;
private VCMessage vcmessage = null;
public XMLDocumentReader(VCClient value)
client = value;
vcmessage = new VCMessage();
public VCMessage getVCMessage()
return vcmessage;
public boolean haveSourceType()
return haveSourceType;
public boolean ParseXML(InputStream stream)
boolean success = false;
// Use the default (non-validating) parser
SAXParserFactory factory = SAXParserFactory.newInstance();
try
// Set up output stream
out = new OutputStreamWriter(System.out, "UTF-8");
// Parse the input
SAXParser saxParser = factory.newSAXParser();
saxParser.parse( stream, this );
success = true;
catch (SAXParseException spe)
// Error generated by the parser
System.out.println("\n** Parsing error"
+ ", line " + spe.getLineNumber()
+ ", uri " + spe.getSystemId());
System.out.println(" " + spe.getMessage() );
// Unpack the delivered exception to get the exception it contains
Exception x = spe;
if (spe.getException() != null)
x = spe.getException();
x.printStackTrace();
return success;
catch (SAXException sxe)
// Error generated by this application
// (or a parser-initialization error)
Exception x = sxe;
if (sxe.getException() != null)
x = sxe.getException();
x.printStackTrace();
return success;
catch (ParserConfigurationException pce)
// Parser with specified options can't be built
pce.printStackTrace();
return success;
catch (Throwable t)
t.printStackTrace();
return success;
return success;
public void startDocument()throws SAXException
emit("<?xml version='1.0' encoding='UTF-8'?>");
nl();
public void endDocument()throws SAXException
try {
nl();
out.flush();
} catch (IOException e) {
throw new SAXException("I/O error", e);
public void startElement(String namespaceURI,
String lName, // local name
String qName, // qualified name
Attributes attrs)throws SAXException
String eName = lName; // element name
if (eName.equals(""))
eName = qName; // namespaceAware = false
emit("<"+eName);
if (attrs != null) {
for (int i = 0; i < attrs.getLength(); i++) {
String aName = attrs.getLocalName(i); // Attr name
if (aName.equals("")) aName = attrs.getQName(i);
emit(" ");
emit(aName + "=\"" + attrs.getValue(i) + "\"");
emit(">");
if(makeStartTag(eName).equals(Constants.OPENING_SHAPEPROPERTIES))
haveOpeningShapePropertiesTag = true;
else if(makeStartTag(eName).equals(Constants.OPENING_SHAPELOCATION))
haveOpeningShapeLocationTag = true;
else if(makeStartTag(eName).equals(Constants.OPENING_BOUNDS))
haveOpeningBoundsTag = true;
else if(makeStartTag(eName).equals(Constants.OPENING_FGCOLOR))
haveOpeningFGColorTag = true;
else if(makeStartTag(eName).equals(Constants.OPENING_BGCOLOR))
haveOpeningBGColorTag = true;
else if(makeStartTag(eName).equals(Constants.OPENING_BGGREEN))
System.out.println("See BGGreen");
else if(makeStartTag(eName).equals(Constants.OPENING_BGBLUE))
System.out.println("See BGBlue");
else if(makeStartTag(eName).equals(Constants.OPENING_THICKNESS))
haveOpeningThicknessTag = true;
else if(makeStartTag(eName).equals(Constants.OPENING_ISFILLED))
haveOpeningIsFilledTag = true;
else if(makeStartTag(eName).equals(Constants.OPENING_IMAGEDATA))
haveOpeningImageDataTag = true;
else if(makeStartTag(eName).equals(Constants.OPENING_TEXTDATA))
haveOpeningTextDataTag = true;
public void endElement(String namespaceURI,
String sName, // simple name
String qName // qualified name
)throws SAXException
if(sName.equals("") && !qName.equals(""))
sName = qName;
emit("</"+sName+">");
else
emit("</"+sName+">");
if(makeEndTag(sName).equals(Constants.CLOSING_SOURCE_TYPE))
haveSourceType = true;
else if(makeEndTag(sName).equals(Constants.CLOSING_USER))
haveUserName = true;
else if(makeEndTag(sName).equals(Constants.CLOSING_MESSAGE))
haveMessage = true;
else if(makeEndTag(sName).equals(Constants.CLOSING_PROCESSEVENT))
haveProcessEvent = true;
else if(makeEndTag(sName).equals(Constants.CLOSING_LINKEDLISTINDEX))
haveLinkedListIndex = true;
else if(makeEndTag(sName).equals(Constants.CLOSING_SHAPETYPE))
haveShapeType = true;
else if(makeEndTag(sName).equals(Constants.CLOSING_SHAPELOCATION))
haveOpeningShapeLocationTag = false;
else if(makeEndTag(sName).equals(Constants.CLOSING_WIDTH))
haveBoundsWidth = true;
else if(makeEndTag(sName).equals(Constants.CLOSING_HEIGHT))
haveBoundsHeight = true;
else if(makeEndTag(sName).equals(Constants.CLOSING_BOUNDS))
haveOpeningBoundsTag = false;
else if(makeEndTag(sName).equals(Constants.CLOSING_FGRED))
haveFGRed = true;
else if(makeEndTag(sName).equals(Constants.CLOSING_FGGREEN))
haveFGGreen = true;
else if(makeEndTag(sName).equals(Constants.CLOSING_FGBLUE))
haveFGBlue = true;
else if(makeEndTag(sName).equals(Constants.CLOSING_FGCOLOR))
haveOpeningFGColorTag = false;
else if(makeEndTag(sName).equals(Constants.CLOSING_BGRED))
haveBGRed = true;
else if(makeEndTag(sName).equals(Constants.CLOSING_BGGREEN))
haveBGGreen = true;
else if(makeEndTag(sName).equals(Constants.CLOSING_BGBLUE))
System.out.println("See closing BGBlue");
haveBGBlue = true;
else if(makeEndTag(sName).equals(Constants.CLOSING_BGCOLOR))
haveOpeningBGColorTag = false;
else if(makeEndTag(sName).equals(Constants.CLOSING_THICKNESS))
System.out.println("XMLDocumentReader: Step2");
haveOpeningThicknessTag = false;
else if(makeEndTag(sName).equals(Constants.CLOSING_ISFILLED))
haveOpeningIsFilledTag = false;
else if(makeEndTag(sName).equals(Constants.CLOSING_IMAGEDATA))
haveOpeningImageDataTag = false;
else if(makeEndTag(sName).equals(Constants.CLOSING_TEXTDATA))
haveOpeningTextDataTag = false;
private String makeStartTag(String tag_name)
String start = "<";
String end = ">";
return start.concat(tag_name).concat(end);
private String makeEndTag(String tag_name)
String start = "</";
String end = ">";
return start.concat(tag_name).concat(end);
public void characters(char buf[], int offset, int len)throws SAXException
String s = new String(buf, offset, len);
if(haveSourceType == false)
if(vcmessage.getSourceType() == null)
try
if(s.equals(""))return;
int sourcetype = Integer.parseInt(s);
vcmessage.setSourceType(sourcetype);
catch(NumberFormatException nfe){}
else if(vcmessage.getSourceType() == SourceType.CHAT_SOURCE)
if(vcmessage.getSourceType() == SourceType.CHAT_SOURCE && haveUserName == false)
vcmessage.setUserName(s);
else if(vcmessage.getSourceType() == SourceType.CHAT_SOURCE && haveMessage == false)
//When the parser encounters interpreted characters like: & or <,
//then this method gets invoked more than once for the whole message.
//Therefore, we need to concatonate each portion of the message. The
//following method call automatically concatonates.
vcmessage.concatMessage(s);
else if(vcmessage.getSourceType() == SourceType.WHITEBOARD_SOURCE)
if(haveProcessEvent == false)
try
vcmessage.setProcessEvent(Integer.parseInt(s));
catch(NumberFormatException nfe){}
else if(haveLinkedListIndex == false)
try
vcmessage.setLinkedListIndex(Integer.parseInt(s));
catch(NumberFormatException nfe){}
else if(haveShapeType == false)
try
vcmessage.setShapeType(Integer.parseInt(s));
catch(NumberFormatException nfe){}
if(haveOpeningShapePropertiesTag)
if(haveOpeningShapeLocationTag)
if(haveOpeningXCoordTag)
try
vcmessage.setXCoordinate(Integer.parseInt(s));
catch(NumberFormatException nfe){}
else if(haveOpeningYCoordTag)
try
vcmessage.setYCoordinate(Integer.parseInt(s));
//reset all flags for ShapeLocation, X and Y coordinates
haveOpeningXCoordTag = false;
haveOpeningYCoordTag = false;
//haveOpeningShapeLocationTag = false;
catch(NumberFormatException nfe){}
else if(haveOpeningBoundsTag)
if(haveBoundsWidth == false)
try
vcmessage.setBoundsWidth(Integer.parseInt(s));
catch(NumberFormatException nfe){}
else if(haveBoundsHeight == false)
try
vcmessage.setBoundsHeight(Integer.parseInt(s));
//reset flag
//haveOpeningBoundsTag = false;
catch(NumberFormatException nfe){}
else if(haveOpeningFGColorTag)
if(haveFGRed == false)
try
vcmessage.setFGRed(Integer.parseInt(s));
catch(NumberFormatException nfe){}
else if(haveFGGreen == false)
try
vcmessage.setFGGreen(Integer.parseInt(s));
catch(NumberFormatException nfe){}
else if(haveFGBlue == false)
try
vcmessage.setFGBlue(Integer.parseInt(s));
//reset flag
//haveOpeningFGColorTag = false;
catch(NumberFormatException nfe){}
else if(haveOpeningBGColorTag)
if(haveBGRed == false)
try
vcmessage.setBGRed(Integer.parseInt(s));
catch(NumberFormatException nfe){}
else if(haveBGGreen == false)
try
vcmessage.setBGGreen(Integer.parseInt(s));
catch(NumberFormatException nfe){}
else if(haveBGBlue == false)
{ System.out.println("getting BGBlue data");
try
vcmessage.setBGBlue(Integer.parseInt(s));
//reset flag
//haveOpeningBGColorTag = false;
catch(NumberFormatException nfe){}
else if(haveOpeningThicknessTag)
try
vcmessage.setThickness(Integer.parseInt(s));
catch(NumberFormatException nfe){}
else if(haveOpeningIsFilledTag)
vcmessage.setIsFilled(s);
else if(haveOpeningImageDataTag && vcmessage.getProcessEvent() == org.jcanvas.comm.ProcessEvent.MODIFY)
vcmessage.setBase64ImageData(s);
else if(haveOpeningTextDataTag && vcmessage.getProcessEvent() == org.jcanvas.comm.ProcessEvent.MODIFY)
vcmessage.setTextData(s);
//reset
haveOpeningShapePropertiesTag = false;
emit(s);
//===========================================================
// Utility Methods ...
//===========================================================
// Wrap I/O exceptions in SAX exceptions, to
// suit handler signature requirements
private void emit(String s)throws SAXException
try {
out.write(s);
out.flush();
} catch (IOException e) {
throw new SAXException("I/O error", e);
// Start a new line
private void nl()throws SAXException
try {
out.write(lineEnd);
} catch (IOException e) {
throw new SAXException("I/O error", e);
//treat validation errors as fatal
public void error(SAXParseException e)
throws SAXParseException
throw e;
// dump warnings too
public void warning(SAXParseException err)
throws SAXParseException
System.out.println("** Warning"
+ ", line " + err.getLineNumber()
+ ", uri " + err.getSystemId());
System.out.println(" " + err.getMessage());
}Just out of curiosity what happens if you append a space to the end of the XML document?
-
Regading getting data to and forth between 2 programs through SUBMIT
Hi All,
I have a issue regarding fetching internal table data from one program to another.
Actually I have <b>Main Program</b> from that through SUBMIT statement i am calling another program and executing it for every 100 records - Actually this program is having BAPI running in it, By result i will get an internal table data. Now i want to get that internal table data back into my MAIN Program so that i can use it for next process.
<b>EXPORT & IMPORT statements are working from MAIN Program to Other Program.</b>
<b>EXPORT & IMPORT statements are not working from Other Program[SUBMIT'ed Program] to MAIN Program.</b>
So can anybody tell me how can i get that data in other program into MAIN Program[Back].
Thanks in advance.
Thanks & Regards,
Rayeez.When you submit the program is then running in parallel with the program which submitted it. There is no mechism that you are using to stop the calling program and wait for the submitted program to finish and bring back some data. Most likly program 1 ends before program 2 is finished updating the material master. You can do this kind of thing with Function modules. You would put your call to the submitted program inside of a function module, then call that function module saying STARTING IN NEW TASK, then you can wait for it to be done and get the results using the RECIEVING statement.
Here is the F1 Help.
+
CALL FUNCTION
Variant 2
CALL FUNCTION func ...STARTING NEW TASK task name.
Additions:
1. ... DESTINATION dest
2. ... DESTINATION IN GROUP group name
3. ... DESTINATION IN GROUP DEFAULT
4. ... PERFORMING form ON END OF TASK
5. ... EXPORTING p1 = f1 ... pn = fn
6. ... TABLES p1 = itab1 ... pn = itabn
7. ... EXCEPTIONS syst_except = rc MESSAGE mess
Effect
Starts the function module func asynchronously ina new session. In contrast to normal function module calls, the callingprogram resumes processing as soon as the function module is started inthe target system. It does not wait until the function module hasfinished. Through CALL SCREEN,the called function module can, for example, display a screen and thusinteract with the user.
Notes
This variant applies only from R/3 Release 3.0, so boththe client system and the server system must have Release 3.0 orhigher.
With this variant, the called function module must also be flagged inthe Function Builder as externally callable, even if it is executedlocally (without the addition DESTINATION).
There can be no function call to the destination 'BACK' in thecalled function module (for more information about the destination 'BACK', see CALLFUNCTION func DESTINATION dest).
This variant does not support the execution of externalprograms accessible via the destination of the TCP/IP type asasynchronous calls (see the Transaction Tools ¨Administration, Administration ¨ Network ¨ RFC destinations formaintaining destinations).
You cannot display screens (screens or lists asamodal windows in RFC communication using SAP Router.
From Release 4.0, you can check the load of each RFC destination moreclosely (in the RFC destination maintenance for an R/3 connection, choose Destination -> ARFC options). This checks whetherthe target host has sufficient resources before the function module isexecuted. If the target host is overloaded, the system delays executingthe function module. The algorithm for calculating the load on thetarget host is the same one used in an asynchronous RFC call using the DESTINATION IN GROUP addition. Note that this option can only beused with target hosts running Release 3.1H or higher. Note also thatit is the default setting.
In principle, parallelization makes sense whenever applicationservers have the necessary resources. In this case, the applicationservers must be configured with at least 3 dialog work processes.
A program that is run in the background and uses RFC parallelizationrequires at least 1 dialog work process per application server becausedialog processes use parallel execution.
If the instance profile parameter 'auth/rfc_authority_check'is set (to 1), the system automatically performs an RFC authorizationcheck. The authorization check refers to the relevant function groupfor the function module to be called. If no authorization is found, aruntime error occurs. You can check the authorization in advance withthe function module AUTHORITY_CHECK_RFC. If the communication takes place in the same system with thesame user context (same client and user ID), there is no authorizationcheck. For further information, refer to the RFCAuthorization Concept.
When you are using asynchronous RFC to implement parallel windows,all these windows are closed if the caller session is the only sessionand terminates.
ABAP_ADDITION_1&
... DESTINATION dest
Effect
Executes the function module externally as a RemoteFunction Call (RFC); dest can be a literal or a variable.The R/3 System where the function module is executed depends on thespecified destination. Externally callable function modules must beflagged as such in the Function Builder (of the target system).
Note
If the destination is not explicitly specified, the systemuses the default destination 'NONE'.
Note
If, during a RemoteFunction Call, an error occurs in the target system, detailsof the error message are passed bac to the calling system in thefollowing system fields: SY-MSGNO, SY-MSGID, SY-MSGTY, SY-MSGV1,SY-MSGV2, SY-MSGV3, and SY-MSGV4. These fields areinitialized before every RFC. If a short dump or a type X messageoccurs, the short text of the dump is transferred to the caller, andthe contents of SY-MSGID, SY-MSGTY, SY-MSGNO, and SY-MSGV1 assigned by the system.
In RFC-enabled function modules, no ABAP statements are allowed thatwould end the RFC connection (for example, LEAVE, SUBMIT or the ANDRETURN addition).
Note
Note that a database commit occurs at eachRemote Function Call (RFC). Consequently, you may not use RemoteFunction Calls between pairs of statements that open and close adatabase cursor (such as SELECT ... ENDSELECT).
Addition 2
... DESTINATION IN GROUP group name
Addition 3
... DESTINATION IN GROUP DEFAULT
Effect
You use this addition to perform parallel execution offunction modules (asynchronous calls) on a predefined group of R/3System application servers.
You use addition 2 (DESTINATION IN GROUP group name) toperform parallel execution of function modules on a predefined group ofapplication servers. To maintain the RFC groups, choose Tools ¨ Administration ¨ Administration ¨ Network ¨ RFCdestinations ¨ RFC ¨ RFC groups. The application programmer isresponsible for the availability of RFC groups in the productionsystem.
You use addition 3 (DESTINATION IN GROUP DEFAULT) to performparallel execution of function modules (asynchronous calls) on all currently available R/3 System application servers. However,instead of this variant, you are recommended to use an RFC group withappropriate resources for parallel processing of asynchronous calls (atleast for performance reasons). Please note that the additionDESTINATION IN GROUP ' ' has the same effect as the additionDESTINATION IN GROUP DEFAULT.
When you first call a function module with these additions, thesystem initializes the specified RFC group (provided no explicitinitialization has already been performed).
To obtain current information about resources (that is, the number ofresources available to process function modules), you can alsoinitialize the RFC group explicitly in the program via the functionmodule SPBT_INITIALIZE. You must perform this actionbefore the first function module call.
In both cases, the system first determines the number of currentlyavailable resources (work processes) on the available applicationservers (either a group of servers or all servers). By checking thecurrent system load of each application server, the system determineshow many work processes are available to execute asynchronous calls.
After determining the available resources, the asynchronous call isexecuted at one of the destinations. If no resources are available atthat particular time, the system executes the exception routine RESOURCE_FAILURE (see the addition EXCEPTIONS). In thecase of an asynchronous function module call, this exception must be handled by the application program (see example).
Parallel processing cannot take place if any of the resourcethresholds are exceeded.
Notes
In order to be taken into consideration for RFC parallelprocessing, an application server must have at least 3 freedialog processes.
The system triggers the exception RESOURCE_FAILURE only forasynchronous RFCs with the additions DESTINATION IN GROUP groupname and DESTINATION IN GROUP DEFAULT.
At present, only one RFC group per program environment issupported for parallel execution of asynchronous calls. Using both theadditions DESTINATION IN GROUP group name and DESTINATION INGROUP DEFAULT in a program is thus not allowed.
To find out which destination was automatically selected, call thefunction module SPBT_GET_PP_DESTINATION immediately after thefunction module call with the two additions. This returns the selectedRFC destination.
If you want to delete an application server from the list of theconfigured RFC group at runtime (for example, when the applicationserver is not accessible for technical reasons), use the functionmodule SPBT_DO_NOT_USE_SERVER.
Addition 4
... PERFORMING form ON END OF TASK
While the parameters for receiving results (i.e. IMPORTING andTABLES parameters) are specified directly as additions in thecase of "conventional" function modules (see variant 2), these arelogged in the FORM routine form when making anasynchronous call (see RECEIVE).
Notes
If a function module returns no result, and you are notinterested in error messages that arise when executing the functionmodule, this addition (... PERFORMING form ON END OF TASK) canbe omitted.
If you want to handle the error messages that arise when executingthe asynchronous function module call, you must use thisaddition. Also, when receiving the results in the FORM routine(see RECEIVE), you must reactaccordingly to the system exceptions SYSTEM_FAILURE andCOMMUNICATION_FAILURE.
With asynchronous RFC, the task name uniquely identifies theasynchronous connection and thus the context called.
If several asynchronous function modules are executed consecutivelyto the same destination, you must assign a different task name to each.
A calling program that starts an asynchronous RFC with PERFORMINGform ON END OF TASK cannot switch roll areas or change to aninternal session. This is because the asynchronous function module callreply cannot be passed on to the relevant program. You can perform aroll area switch with SUBMIT or CALL TRANSACTION.
If a calling program makes asynchronous calls, finishes, and thenexpects responses, these responses cannot be delivered.
To wait for the reply to a started asynchronous function module, usethe WAIT command with the additionPERFORMING form ON END OF TASK. Here, WAIT must be in thesame program context (session).
Note that the execution of the asynchronous calls involves a changeof roll area. This means that the FORM routines for receivingthe external calls can be processed while you are making furtherexternal calls. This means that the developer must ensure thatthe FORM routines can be executed at any time. You cannotmake any assumptions about the processing sequence.
Addition 5
... EXPORTING p1 = f1 ... pn = fn
Effect
EXPORTING passes values of fields and fieldstrings from the calling program to the function module. In thefunction module, the formal parameters are defined as importparameters.
Addition 6
... TABLES p1 = itab1 ... pn = itabn
Effect
TABLES passes the contents of internal tables.
Addition 7
... EXCEPTIONS syst_except = rc MESSAGE mess
Effect
While any exceptions arising in the called functionmodule are handled by the second addition (in the FORM routine),this addition can handle two special system exceptions, as withfunction module calls with the addition DESTINATION:
SYSTEM_FAILURE
is triggered, if a system crash occurs on the receiving side.
COMMUNICATION_FAILURE
is triggered if there is a connection or communication problem.
In both cases, you can get a description of the error with theoptional addition
... MESSAGE msg
Note
In principle, you should always react to these twosystem exceptions, whether you are making an asynchronous functionmodule call or receiving results.
Examples
Asynchronous call to a transaction and display in a separate session.
DATA: MSG_TEXT(80) TYPE C. "Message text
Asynchronous call to Transaction SM59 -->
Create a new session
CALL FUNCTION 'ABAP4_CALL_TRANSACTION' STARTING NEW TASK 'TEST'
DESTINATION 'NONE'
EXPORTING
TCODE = 'SM59'
EXCEPTIONS
COMMUNICATION_FAILURE = 1 MESSAGE MSG_TEXT
SYSTEM_FAILURE = 2 MESSAGE MSG_TEXT.
IF SY-SUBRC NE 0.
WRITE: MSG_TEXT.
ELSE.
WRITE: 'O.K.'.
ENDIF.
Using RFC groups to parallelize function module calls (RFC parallelprocessing)
TYPES: BEGIN OF TASKLIST_TYPE,
TASKNAME(4) TYPE C, "Task administration
RFCDEST LIKE RFCSI-RFCDEST
END OF TASKLIST_TYPE.
DATA: INFO LIKE RFCSI, C, "Message text
JOBS TYPE I VALUE 10, "Number of parallel jobs
SND_JOBS TYPE I VALUE 1, "Sent jobs
RCV_JOBS TYPE I VALUE 1, "Received replies
EXCP_FLAG(1) TYPE C, "Number of RESOURCE_FAILUREs
TASKNAME(4) TYPE N VALUE '0001', "Task name administration
TASKLIST TYPE TABLE OF TASKLIST_TYPE,
WA_TASKLIST TYPE TASKLIST_TYPE.
DO.
CALL FUNCTION 'RFC_SYSTEM_INFO'
STARTING NEW TASK TASKNAME DESTINATION IN GROUP DEFAULT
PERFORMING RETURN_INFO ON END OF TASK
EXCEPTIONS
COMMUNICATION_FAILURE = 1
SYSTEM_FAILURE = 2
RESOURCE_FAILURE = 3.
CASE SY-SUBRC.
WHEN 0.
Administration of asynchronous tasks
WA_TASKLIST-TASKNAME = TASKNAME.
CLEAR WA_TASKLIST-RFCDEST.
APPEND WA_TASKLIST TO TASKLIST.
WRITE: / 'Started task: ', WA_TASKLIST-TASKNAME COLOR 2.
TASKNAME = TASKNAME + 1.
SND_JOBS = SND_JOBS + 1.
JOBS = JOBS - 1. "Number of existing jobs
IF JOBS = 0.
EXIT. "Job processing finished
ENDIF.
WHEN 1 OR 2.
Handling of communication and system failure
WHEN 3. "No resources available at present
Receive reply to asynchronous RFC calls
IF EXCP_FLAG = SPACE.
EXCP_FLAG = 'X'.
First attempt for RESOURCE_FAILURE handling
WAIT UNTIL RCV_JOBS >= SND_JOBS UP TO '0.01' SECONDS.
ELSE.
Second attempt for RESOURCE_FAILURE handling
WAIT UNTIL RCV_JOBS >= SND_JOBS UP TO '0.1' SECONDS.
ENDIF.
IF SY-SUBRC = 0.
CLEAR EXCP_FLAG. "Reset flag
ELSE. "No replies
"Endless loop handling
ENDIF.
ENDCASE.
ENDDO.
Receive remaining asynchronous replies
WAIT UNTIL RCV_JOBS >= SND_JOBS.
LOOP AT TASKLIST INTO WA_TASKLIST.
WRITE:/ 'Received task:', WA_TASKLIST-TASKNAME COLOR 1,
30 'Destination: ', WA_TASKLIST-RFCDEST COLOR 1.
ENDLOOP
FORM RETURN_INFO USING TASKNAME.
RECEIVE RESULTS FROM FUNCTION 'RFC_SYSTEM_INFO'
IMPORTING RFCSI_EXPORT = INFO
EXCEPTIONS
COMMUNICATION_FAILURE = 1
SYSTEM_FAILURE = 2.
RCV_JOBS = RCV_JOBS + 1. "Receiving data
IF SY-SUBRC NE 0.
Handling of communication and system failure
ELSE.
READ TABLE TASKLIST WITH KEY TASKNAME = TASKNAME
INTO WA_TASKLIST
IF SY-SUBRC = 0. "Register data
WA_TASKLIST-RFCDEST = INFO_RFCDEST.
MODIFY TASKLIST INDEX SY-TABIX FROM WA_TASKLIST.
ENDIF.
ENDIF.
ENDFORM
Note
If you encounter problems, refer toTypical RFC problems and theirsolutions.
Note
Runtime errors:
Note
Runtime errors:
CALL_FUNCTION_NO_RECEIVER:
Data received for an unknown CPI-C connection.
CALL_FUNCTION_DEST_TYPE:
Destination type not allowed.
CALL_FUNCTION_NO_DEST:
Specified destination does not exist.
CALL_FUNCTION_NO_LB_DEST:
Specified destination (in load distribution mode) does not exist.
CALL_FUNCTION_TABINFO:
Data error (info internal table) in a Remote Function Call.
CALL_BACK_ENTRY_NOT_FOUND:
The called function module is not released for use in RFC.
CALL_FUNCTION_FIELD_NOT_FOUND:
The function parameter that you passed is not recognized on therecipient side.
RFC_NO_AUTHORITY:
The user does not have RFC authorization.
CALL_FUNCTION_SINGLE_LOGIN_REJ:
No authorization to log on as a trusted system. The error codeshave the following meanings:
0) Valid security key but wrong logon data 1) Calling system is not a trusted system, or security key is invalid 2) User either does not have RFC authorization (authorization object S_RFCACL), or logged on as one of the protected users 'DDIC' or 'SAP*' 3) Timestamp of the logon data is invalid
CALL_FUNCTION_DESTINATION_NO_T:
Missing communication type (I for internal connection, 3 for R/3) in anasynchronous RFC
CALL_FUNCTION_NOT_REMOTE:
The function module called is not flagged as "RFC supported"
CALL_FUNCTION_REMOTE_ERROR:
An error occurred during the Remote Function Call. This has been loggedin the target system.
CALL_FUNCTION_SIGNON_INCOMPL:
The logon data for the user is incomplete.
CALL_FUNCTION_SIGNON_INTRUDER:
You cannot log onto a target system using an internal call.
CALL_FUNCTION_SIGNON_INVALID:
External RFC without a valid user name.
CALL_FUNCTION_SIGNON_REJECTED:
Attempt to log onto a target system without a valid user name. Theerror code can have the following meanings:
1) Wrong password or invalid user ID
2) User locked
3) Too many logon attempts
4) Error in authorization buffer (internal error)
5) No external user check
6) Invalid user type
7) Validity period of user has expired
CALL_FUNCTION_SYSCALL_ONLY:
RFC without a valid user name only allowed when calling system functionmodules. For the meaning of the error codes, refer toCALL_FUNCTION_SINGLE_LOGIN_REJ.
CALL_FUNCTION_TABLE_NO_MEMORY:
No memory available for a table to be imported
CALL_FUNCTION_TASK_IN_USE:
Asynchronous RFC only: Task name already in use.
CALL_FUNCTION_TASK_YET_OPEN:
Asynchronous RFC only: The specified task is already open.
CALL_FUNCTION_SNC_ERROR:
Error reading the SNC information for the destination.
CALL_RPERF_SLOGIN_READ_ERROR:
No valid trusted system entry for the calling system.
CALL_RPERF_SLOGIN_AUTH_ERROR:
No trusted authorization for the RFC caller and trusted system.
+
Regards,
Rich Heilman
Maybe you are looking for
-
Patch 9.0.2.39.02 - Where can I get it?
According to the discussion forums, I need to upgrade to Discoverer 9.0.2.53 PatchSet. I found this patchset on Metalink. However, The Readme notes for this says that this goes on top of Discoverer 9.0.2.39.02. I am on (Oracle 9iDS) Discoverer 9.0.2.
-
[Solved] Font problem when trying to start qmon (sun grid engine)
When I tried to start the qmon (queue monitor program), the error message show up as below: [root@sge01 ~]# qmon Warning: Cannot convert string "-adobe-helvetica-medium-r-*--14-*-*-*-p-*-*-*" to type FontStruct Warning: Cannot convert string "-adobe-
-
Hi, Upgrading to driod 2 or Facinate,how is the call quaulity and clearity in the Fascinate? Need some real input. Thank you
-
Bind Dictionary to dataProvider
I have a class which stores data in a dictionary such as: [Bindable] public var data:Dictionary; Person bill = new Person("bill"); data["bill"] = bill; Ok, I have a DataGrid which I would like to bind to this dictionary's values (i.e. the Person obje
-
Can't turn off Backup on Palm Pre !
I really don't want this Backup function on my phone ! When I disable it, I just get a spinning circle ... that's it ... nothing is happening ! any tips ?