Canvas, KeyListener and name input
Hello,
I'm currently working on a game project where the user will start at a menu. The menu is a Canvas connected to a KeyListener and the user selects options with the up and down arrow keys and confirms their selection with the Enter key. When the user selects one of the options, the next step I want to implement is having some sort of text area for inputting the user name, but from what I understand this is not possible with Canvases. So I thought of having some simple getKeyCode method returns but this will always make the outermost switch-case go to default. So, my question is how should I restructure this?
Since the other parts of the projects are also Canvases, I cannot just simply change to a JPanel and add TextAreas.
This is my current code:
int selected = 0; //The user's current option selected
public void keyPressed(KeyEvent e)
switch (e.getKeyCode())
//Handle up and down arrow presses...
//Handle enter
case KeyEvent.VK_ENTER:
switch (selected)
case (LOG_IN):
action = LOG_IN;
//Here I want the text input
break;
case (EXIT):
System.exit(0);
break;
}
As I mentioned in the first post, we want to stick to using Cavases all the way, but I'll hear with my team if they will consider having frames for the menues instead.
Similar Messages
-
Table name input. and output i need all rows and columns using procedures
hi,
question: table name input. and output i need all rows and columns by using procedures.
thanks,
To AllAn example of using DBMS_SQL package to execute dynamic SQL (in this case to generate CSV data in a file)...
As sys user:
CREATE OR REPLACE DIRECTORY TEST_DIR AS '\tmp\myfiles'
GRANT READ, WRITE ON DIRECTORY TEST_DIR TO myuser
/As myuser:
CREATE OR REPLACE PROCEDURE run_query(p_sql IN VARCHAR2
,p_dir IN VARCHAR2
,p_header_file IN VARCHAR2
,p_data_file IN VARCHAR2 := NULL) IS
v_finaltxt VARCHAR2(4000);
v_v_val VARCHAR2(4000);
v_n_val NUMBER;
v_d_val DATE;
v_ret NUMBER;
c NUMBER;
d NUMBER;
col_cnt INTEGER;
f BOOLEAN;
rec_tab DBMS_SQL.DESC_TAB;
col_num NUMBER;
v_fh UTL_FILE.FILE_TYPE;
v_samefile BOOLEAN := (NVL(p_data_file,p_header_file) = p_header_file);
BEGIN
c := DBMS_SQL.OPEN_CURSOR;
DBMS_SQL.PARSE(c, p_sql, DBMS_SQL.NATIVE);
d := DBMS_SQL.EXECUTE(c);
DBMS_SQL.DESCRIBE_COLUMNS(c, col_cnt, rec_tab);
FOR j in 1..col_cnt
LOOP
CASE rec_tab(j).col_type
WHEN 1 THEN DBMS_SQL.DEFINE_COLUMN(c,j,v_v_val,2000);
WHEN 2 THEN DBMS_SQL.DEFINE_COLUMN(c,j,v_n_val);
WHEN 12 THEN DBMS_SQL.DEFINE_COLUMN(c,j,v_d_val);
ELSE
DBMS_SQL.DEFINE_COLUMN(c,j,v_v_val,2000);
END CASE;
END LOOP;
-- This part outputs the HEADER
v_fh := UTL_FILE.FOPEN(upper(p_dir),p_header_file,'w',32767);
FOR j in 1..col_cnt
LOOP
v_finaltxt := ltrim(v_finaltxt||','||lower(rec_tab(j).col_name),',');
END LOOP;
-- DBMS_OUTPUT.PUT_LINE(v_finaltxt);
UTL_FILE.PUT_LINE(v_fh, v_finaltxt);
IF NOT v_samefile THEN
UTL_FILE.FCLOSE(v_fh);
END IF;
-- This part outputs the DATA
IF NOT v_samefile THEN
v_fh := UTL_FILE.FOPEN(upper(p_dir),p_data_file,'w',32767);
END IF;
LOOP
v_ret := DBMS_SQL.FETCH_ROWS(c);
EXIT WHEN v_ret = 0;
v_finaltxt := NULL;
FOR j in 1..col_cnt
LOOP
CASE rec_tab(j).col_type
WHEN 1 THEN DBMS_SQL.COLUMN_VALUE(c,j,v_v_val);
v_finaltxt := ltrim(v_finaltxt||',"'||v_v_val||'"',',');
WHEN 2 THEN DBMS_SQL.COLUMN_VALUE(c,j,v_n_val);
v_finaltxt := ltrim(v_finaltxt||','||v_n_val,',');
WHEN 12 THEN DBMS_SQL.COLUMN_VALUE(c,j,v_d_val);
v_finaltxt := ltrim(v_finaltxt||','||to_char(v_d_val,'DD/MM/YYYY HH24:MI:SS'),',');
ELSE
v_finaltxt := ltrim(v_finaltxt||',"'||v_v_val||'"',',');
END CASE;
END LOOP;
-- DBMS_OUTPUT.PUT_LINE(v_finaltxt);
UTL_FILE.PUT_LINE(v_fh, v_finaltxt);
END LOOP;
UTL_FILE.FCLOSE(v_fh);
DBMS_SQL.CLOSE_CURSOR(c);
END;This allows for the header row and the data to be written to seperate files if required.
e.g.
SQL> exec run_query('select * from emp','TEST_DIR','output.txt');
PL/SQL procedure successfully completed.Output.txt file contains:
empno,ename,job,mgr,hiredate,sal,comm,deptno
7369,"SMITH","CLERK",7902,17/12/1980 00:00:00,800,,20
7499,"ALLEN","SALESMAN",7698,20/02/1981 00:00:00,1600,300,30
7521,"WARD","SALESMAN",7698,22/02/1981 00:00:00,1250,500,30
7566,"JONES","MANAGER",7839,02/04/1981 00:00:00,2975,,20
7654,"MARTIN","SALESMAN",7698,28/09/1981 00:00:00,1250,1400,30
7698,"BLAKE","MANAGER",7839,01/05/1981 00:00:00,2850,,30
7782,"CLARK","MANAGER",7839,09/06/1981 00:00:00,2450,,10
7788,"SCOTT","ANALYST",7566,19/04/1987 00:00:00,3000,,20
7839,"KING","PRESIDENT",,17/11/1981 00:00:00,5000,,10
7844,"TURNER","SALESMAN",7698,08/09/1981 00:00:00,1500,0,30
7876,"ADAMS","CLERK",7788,23/05/1987 00:00:00,1100,,20
7900,"JAMES","CLERK",7698,03/12/1981 00:00:00,950,,30
7902,"FORD","ANALYST",7566,03/12/1981 00:00:00,3000,,20
7934,"MILLER","CLERK",7782,23/01/1982 00:00:00,1300,,10The procedure allows for the header and data to go to seperate files if required. Just specifying the "header" filename will put the header and data in the one file.
Adapt to output different datatypes and styles are required. -
Can't select input output and name media when using MRC1 log and transfer
I am using a MRC1 from the Sony Z5E to film my media. I downloaded the plugin which allows me to log and transfer through FCP 6.0.6. The only problem is that it does not allow me to input/output and name the pieces of each clip that I want. Hence I can only import the whole clip and am wasting time and space with media that I do not want or need. Is there an additional plugin or setting to pick on FCP to get this feature to work?
RichHi xhk, I'm a Kubuntu's user and I've had the same problems. I've been days reading on the Internet about this issue and finally I solve it by following this post from a Spanish tutorial: http://bit.ly/4p3XFq. It worked for me!
Basically it is:
1. Get install the needed packages, i.e: sudo apt-get install ibus ibus-pinyin
2. After installing them, introduce a little code into two files:
2.1.--> type on your konsole: kate /home/$(whoami)/.bashrc
a--> add to the bottom of the opened text:
export GTK_IM_MODULE=ibus
export XMODIFIERS=@im=ibus
export QT_IM_MODULE=ibus
b-->save the changes on the text.
2.2.--> type again on your konsole: kate /home/$(whoami)/.profile
b--> repeat 2.1.a. and 2.1.b
3. Go to main menu - system settings - advance - "autoarranque" (I don't know how it is called in English, "restarting" maybe?) and then "add a programme". Type: ibus-daemon -d, press OK and then rebooth.
It shall be working by then.
Last edited by mxd (2013-07-06 01:42:27) -
Where does MAX store channel config such as names, input type, and scalers
Where does MAX store the channel configuration such as the channel names, input type (volts, current, etc), and scaling info?
Unfortunately, our hard drive failed and our Labview back up folder didn't include the MAX channel description/configuration. Our hard drive is currently at a data recovery service and it would be much simpler if we could recover the file instead of re-creating all the channels within MAX. Any help to find the actual location and file name/s would be greatly appreciated.
We are currently using Labview 7.1 on an XP platform that is now freshly installed. Once I complete the install, I plan on making a ghost image of the drive to prevent this from every happening again
ThanksThank you for contacting National Instruments.
I believe the information you want is contained in this KnowledgeBase article:
Where Can I Find the Default NI-DAQ Configuration File (niconfig.daq) for Measurement & Automation Explorer (MAX) Under Windows 98/2000/XP?
http://digital.ni.com/public.nsf/websearch/AAB44ACFF1A81F5286256C6C000035CC?OpenDocument
Michael P
National Instruments -
KeyListener and MouseListener...How?
I have a JTable and I want to add some KeyListener and MouseListener events to do following functions:
- When PageDown is pressed, function NextPage(){...} is invoked
- When a row is selected, then press Enter, function Select(){...} is invoked
- Or when a row is clicked, function Select(){...} is invoked
- When ESC is pressed function Exit(){...} is invoked
Thanks all your help and sorry for my poor English :)I think you should look at using Actions. Here is a simple example that shows how to map Actions to KeyStrokes:
import java.awt.*;
import java.awt.event.*;
import javax.swing.*;
public class KeyboardAction extends JFrame
public KeyboardAction()
JPanel panel = new JPanel();
setContentPane( panel );
JTextField textField1 = new JTextField("Ctrl+1 or Ctrl+2", 10);
panel.add( textField1 );
JTextField textField2 = new JTextField("Ctrl+2", 10);
panel.add( textField2 );
// Change the input map of the text field,
// therefore, Ctrl+1 only works for the first text field
Action action1 = new SimpleAction("1");
Object key1 = action1.getValue(Action.NAME);
KeyStroke ks1 = KeyStroke.getKeyStroke(KeyEvent.VK_1, KeyEvent.CTRL_MASK);
textField1.getInputMap().put(ks1, key1);
textField1.getActionMap().put(key1, action1);
// Change the input map of the panel
// therefore, Ctrl+2 works for both text fields added to the panel
Action action2 = new SimpleAction("2");
Object key2 = action2.getValue(Action.NAME);
KeyStroke ks2 = KeyStroke.getKeyStroke(KeyEvent.VK_2, KeyEvent.CTRL_MASK);
panel.getInputMap(JComponent.WHEN_ANCESTOR_OF_FOCUSED_COMPONENT).put(ks2, key2);
panel.getActionMap().put(key2, action2);
class SimpleAction extends AbstractAction
public SimpleAction(String name)
putValue( Action.NAME, "Action " + name );
public void actionPerformed(ActionEvent e)
System.out.println( getValue( Action.NAME ) );
public static void main(String[] args)
KeyboardAction frame = new KeyboardAction();
frame.setDefaultCloseOperation( EXIT_ON_CLOSE );
frame.pack();
frame.setVisible(true);
}Here is section in the Swing tutorial that explains more about key bindings and Actions:
http://java.sun.com/docs/books/tutorial/uiswing/misc/keybinding.html -
FTP adapter should take file path and name at runtime..
Hello All,
I have requirement of getting the file from remote machine into local machine..thinking FTP adapter should help me to do this..
I dont need to poll the remote directory. rather I will pass the exact path and name of the file to be fetched during runtime as an input to the bpel process.
How to configure the FTP Adapter to receive the file path runtiime and gets it to local machine.
Is it doable using ftp adapter..?
Thanks
SaikrishnaHello Anne,
Thank you for the help.
I am not able to call a adapter partner link using invoke activity..I am facing variable type conflicts.
modified the
OutboundFtpHeaderType wsdl to take file name and directory as:
<complexType>
<sequence>
<element name="*fileName*" type="string"/>
<element name="*directory*" type="string"/>
</sequence>
</complexType>
Using Adapters tab of Invoke activity created a variable:
<variable name="outputVariable"
messageType="client:FTPadapterResponseMessage"/>
<variable name="*filePath*" messageType="ns2:OutboundHeader_msg"/>
Using Assign Activity, assigned the input varibales to the ftp outboundHeader variable:
<assign name="Assign_1">
<copy>
<from variable="inputVariable" part="payload"
query="/client:FTPadapterProcessRequest/client:*directory*"/>
<to variable="*filePath*" part="outboundHeader"
query="/ns2:OutboundFTPHeaderType/ns2:directory"/>
</copy>
<copy>
<from variable="inputVariable" part="payload"
query="/client:FTPadapterProcessRequest/client:*filename*"/>
<to variable="*filePath*" part="outboundHeader"
query="/ns2:OutboundFTPHeaderType/ns2:fileName"/>
</copy>
</assign>
Used the created variable in the invoke activity as a input paramater to the partner link:
<invoke name="Invoke_1" partnerLink="ftpAdapterTest"
portType="ns1:SynchRead_ptt" operation="SynchRead"
inputVariable="*filePath*" bpelx:inputHeaderVariable="filePath"/>
<reply name="replyOutput" partnerLink="client" portType="client:FTPadapter"
operation="process" variable="outputVariable"/>
I am getting an error in invoke activity:
Variable type does not match the input type.
Thanks
Saikrishna -
Split PDF, name odd pages and name even pages in sequence
I need help creating a script to ask the user for a PDF file then do the following:
-Extract even pages and rename name with "_Front#" ending where "#" is a number sequence starting with 1.
→ ex: the PDF I choose when prompted is "anatomyBook". The extracted even pages would be:
- anatomyBook_Front1, anatomyBook_Front2, anatomyBook_Front3,...
-Extract odd pages and name them similarly except replace "Front" with "Back"
Thanks for the help!Ok, I have solved some issues I found with the previous script and Automator configuration.
The Filter Finder Items action apparently uses kMDItemKind to determine the file type, and if you choose a PDF file without an extension, this action will not pass the file to the Bash script. Result: 0.
The mdls command, for the same reason will always fail to get a page count when it encounters a extensionless PDF file.
Remove the entire mdls/egrep command sequence from the script.
Wrote a shell function that runs Python, imports the CoreGraphics module, and returns the page count for PDF files with/out extensions. The function takes as its argument, the input PDF filename, which it passes into Python as a command-line argument ($1). It returns a page count.
Replace entire Bash script in Automator with the following code.
New Bash Script
#!/bin/bash
# Requirement: Install Skim PDF reader
# Location: http://skim-app.sourceforge.net
# Usage: progname.sh sample.pdf
# Author: VikingOSX, August 2014, Apple Support Community
function PDFpagecnt () {
/usr/bin/python -c \
"import sys
from CoreGraphics import *
pdfdoc = sys.argv[1]
provider = CGDataProviderCreateWithFilename(pdfdoc)
pdf = CGPDFDocumentCreateWithProvider(provider)
print('{}'.format(pdf.getNumberOfPages()))" "${1}"
function ASDialog () {
`osascript <<-AppleScript
set pdfFile to "${1}"
set evens to "${2}"
set odds to "${3}"
set msg to ""
set msg to msg & "PDF Processed: " & pdfFile & return
set msg to msg & "Front Pages: " & tab & evens & return
set msg to msg & "Back Pages: " & tab & odds
tell application "System Events"
display dialog msg with title "Processing Complete" giving up after 20
end tell
return quit
AppleScript`
skimPDF="/Applications/Skim.app/Contents/SharedSupport/skimpdf"
pdfFile="$@"
basename="${pdfFile%.*}"
even=1
odd=1
pagecnt=$(PDFpagecnt "${pdfFile}")
for mypdf in "$@"
do
for page in $(seq 1 $pagecnt)
do
if [[ $((page % 2)) == 0 ]]; then
#even extractions
`${skimPDF} extract "${pdfFile}" "${basename}""_Front"$((even)) -page ${page}`
((++even))
else
#odd extractions
`${skimPDF} extract "${pdfFile}" "${basename}""_Back"$((odd)) -page ${page}`
((++odd))
fi
done
done
ASDialog "${pdfFile}" $((--even)) $((--odd))
exit 0 -
Why i have to specify the parameters (property and name) in both tags?
Recently i learned how to populate a html:select with data from a DB table with a int value and a String value (value and label of an option). For that i create a business object that represent one pair value&label (i called categoryBO) and another business object that contains a list of the business objects categoryBO. So in my JSP i have the next code:
<html:select name="lista" property="listaPropiedades">
<html:optionsCollection name="lista" property="listaPropiedades" value="varValor" label="varLabel" />
</html:select> Well i understand the next: name is the name of the business object that contains the list with the objects that represents the options in the select tag; property is the name of the list object, in the business object i need to have the getters and setters for that list; then value is the name of the variable that contains the data that will be the value of each option and label is the name of the variable that contains the data that will be the value of each label.
But i have the next questions:
1. Why i have to establish the parameters property and name for bot html:select and html:optionsCollection? Why not only in html:select or only html:optionsCollection?
2. In the ActionForm for my JSP i don�t know what data type have to use to declare the variable that's linked with the option or with the select. I'm using Object for now.
3. Why the only way to populate the html:optionsCollection in the Action is passing the object in the request object as an atribute in the next way:
request.setAttribute("lista", objectThatContainsList);instead
((ActionForm)form).setListaPropiedades(objectThatContainsList);why's that? I have the same question when i'm populatina a normal html table using a logic:iterate tag or using a display:table tag from displaytag library.Ok, you have one big misconception here - you're using the same name/property for both the select component and its contents.
The html:select should refer you to ONE selected value (in this case an int). It should tie to a field on your action form.
The html:optionsCollection should refer to a list of beans used to populate this select component.
<html:select property="selectedItem">
<html:optionsCollection name="myList" property="listOfProperties" value="varValor" label="varLabel" />
</html:select>
1. Why i have to establish the parameters property and name for bot html:select and html:optionsCollection? Why not only in html:select or only html:optionsCollection?Because they actually refer to two different things, and should be two different values.
html:options gets the list of possible values
html:select stores the "selected" option. (consider what you would have if you just used a standard html:input here, and typed the id directly in - THATS the property to bind to)
2. In the ActionForm for my JSP i don�t know what data type have to use to declare the variable that's linked with the option or with the select. I'm using Object for now.You do now - because it is declared/mapped seperately
3. Why the only way to populate the html:optionsCollection in the Action is passing the object in the request object as an atribute in the next way:Its not.
The way you mentioned is also valid. If both the "selectedItem" and "listOfItems" are properties on your action form, you can leave out the "name" attribute, and they will be found there.
However if you are dealing with request scoped beans, you will have to populate the list on each access of the page - you will need a "load" action to poupulate the bean with the items for the dropdown, and make sure that it is always populated when you return to it (eg on an error condition).
That is why setting it as an attribute is sometimes preferable.
Cheers,
evnafets -
Coding help...not wanting name input
Hi, ive been working on this ongoing program, adding little here and there. And i finally got it to stop working when stop is entered into the name selection. But while im in the second loop of "does not equal stop" it dispays the print System.out.print("Please enter the employees name"); but does not wait for me to enter the name and jumps to the next step. I have tried to make the second while loop variable "name" different then the first loop but that didnt work. If you can please help me that would be greatly appreciated.
import java.util.Scanner;
public class WeeklyPay
public static void main(String[] args)
Scanner input= new Scanner (System.in);
double rate;
double hours;
double weekly;
String name;
String stop;
String name2;
System.out.println("Hello!"); //Welcome Text
System.out.println("This program computes an employees weekly pay"); //Explains what its for
System.out.print("Please enter the employees name:"); //Asks for employees name
name = input.nextLine(); //Saves next input as name
if( ! (name.equalsIgnoreCase("stop")) )
System.out.print("Please enter the hourly rate of the employeee:"); //Asks for hourly rate
hours = input.nextDouble(); //Saves next input as hours
System.out.print("Please enter the number of hours the employee works a week:"); //Asks for number of hours worked in a week
rate = input.nextDouble(); //Saves number of hours a week
weekly = rate*hours; //Computes weekly pay
System.out.printf("The employee:%s\n", name); //Displays Employees name
System.out.printf("Weekly pay : $%6.2f%n", weekly); //Displays weekly pay
while( ! (name.equalsIgnoreCase("stop")) )
System.out.println("Please enter the employees name:"); //Asks for employees name
name2 = input.nextLine(); //Saves next input as name
System.out.print("Please enter the hourly rate of the employeee:"); //Asks for hourly rate
hours = input.nextDouble(); //Saves next input as hours
System.out.print("Please enter the number of hours the employee works a week:"); //Asks for number of hours worked in a week
rate = input.nextDouble(); //Saves number of hours a week
weekly = rate*hours; //Computes weekly pay
System.out.printf("The employee:%s\n", name2); //Displays Employees name
System.out.printf("Weekly pay : $%6.2f%n", weekly); //Displays weekly pay
System.out.println("Program has been terminated"); //Program will terminate
}test
import java.util.Scanner;
public class WeeklyPay
public static void main(String[] args)
Scanner input= new Scanner (System.in);
double rate;
double hours;
double weekly;
String name;
String stop;
String name2;
System.out.println("Hello!"); //Welcome Text
System.out.println("This program computes an employees weekly pay"); //Explains what its for
System.out.print("Please enter the employees name:"); //Asks for employees name
name = input.nextLine(); //Saves next input as name
if( ! (name.equalsIgnoreCase("stop")) )
System.out.print("Please enter the hourly rate of the employeee:"); //Asks for hourly rate
hours = input.nextDouble(); //Saves next input as hours
System.out.print("Please enter the number of hours the employee works a week:"); //Asks for number of hours worked in a week
rate = input.nextDouble(); //Saves number of hours a week
weekly = rate*hours; //Computes weekly pay
System.out.printf("The employee:%s\n", name); //Displays Employees name
System.out.printf("Weekly pay : $%6.2f%n", weekly); //Displays weekly pay
while( ! (name.equalsIgnoreCase("stop")) )
System.out.println("Please enter the employees name:"); //Asks for employees name
name2 = input.nextLine(); //Saves next input as name
System.out.print("Please enter the hourly rate of the employeee:"); //Asks for hourly rate
hours = input.nextDouble(); //Saves next input as hours
System.out.print("Please enter the number of hours the employee works a week:"); //Asks for number of hours worked in a week
rate = input.nextDouble(); //Saves number of hours a week
weekly = rate*hours; //Computes weekly pay
System.out.printf("The employee:%s\n", name2); //Displays Employees name
System.out.printf("Weekly pay : $%6.2f%n", weekly); //Displays weekly pay
System.out.println("Program has been terminated"); //Program will terminate
}Edited by: Broodwich on Oct 10, 2008 8:00 AM -
Hide extension in file name input field when saving?
A few days ago in Photoshop CS6 I started automatically getting an extension in the file name input field.
Previously, when I did a "save as" I got, for example "image01."
A few days ago I started getting "image01.jpg."
I have another installation of CS6 on another desktop and on that one I get simply "image01." That's the way is had been on this machine.
This has nothing to do with file/folder options in Windows Explorer. I don't see extension names anywhere but in the Photoshop 'save as' input field.
It is highly annoying because I process a lot of images and having to get rid of the ".jpg" wastes time.
Anyone have any ideas?
dgThanks, everyone for your replies. Perhaps I did not explain this clearly.
This change I experienced has nothing to do with Windows Explorer settings.
Here's what the input looks like on my secondary machine and how Photoshop behaved on my primary machine until a few days ago:
All that is shown is the file name: No extension.
Here's what I'm getting now:
Suddenly Photoshop in adding ".jpg" to the end of the file name. This happens in both 64 bit (my default) and 32 bit (I never use it but tested i)t.
I have not changed anything yet, but could this be a Photoshop preferences issue as gener7 suggested? I made no changes to my Photoshop installation prior to this starting to happen.
As an aside. I'm surprised people like having the extension in the file name. I have never found that to be necessary at all, since Windows Explorer shows the file type right in the window:
And if you select an image it's also shown on the lower left:
I use primarily .jpgs, .tiffs, and CR2 files and even without looking at the examples above, the icon alone tells me what kind of file it is.
dg -
Populate Emp_ID and Name in DropdownKey field using RFC
Hi All,
I want to populate ID and Name in a dropdownkey field from employee table in web dynpro application using RFC.
Can any one explain how to do this in step by step?
ThanksHi,Sridhar
In fact , It doesn't matter you employ model node or value node .if you created mode node ,you are able to <b>bind</b> it to BAPI directly , this means you don't have to care how the data tranfer from BAPI to costom controller context due to BIND system provided by Web Dynpro Frame. how ever , if you used value node ,you have to get data from BAPI to context node manually . This is also the case between custom controller and view controller.
we use mode mode. in your case :
<b>1.</b> Creat a mode node with two attribute name and ID within customer controller, then binding this node to your BAPI node corresponding your name and ID field (Don't have to bind the entire input node )
<b>2.</b> Creat a method in your customer controller like this :
public void callRFC( )
//@@begin callRFC()
Z_Allcountry_Input input(your excutable class) ;
input = new Z_Allcountry_Input();
try{
input.execute();
} catch(WDDynamicRFCExecuteException ce) {
msgMgr.reportException(ce.getMessage(), false);
wdContext.nodeOutputlist().bind(input.getOutput().getZkeyandname());
//Zkeyandname is your class corresponding name and id
//@@end
<b>3.</b> Creat mode node which have same structure as customer controller in view controller ,<b>mapping</b> it to customer comtroller .
<b>4.</b> in your WDinit method in view controller:
IWDAttributeInfo attributeInfo =
wdContext.getNodeInfo().getAttribute(IPrivateNationalityView.IContextElement.ID);
ISimpleTypeModifiable countryType = attributeInfo.getModifiableSimpleType();
ISeachhelpdataElement element;
wdThis.wdGetSeachhelpfornationlityController().<b>callRFC();</b>
IModifiableSimpleValueSet valueSet =
countryType.getSVServices().getModifiableSimpleValueSet();
countryType.setFieldLabel("NAME");
for ( int i = 0 ; i < wdThis.wdGetContext().nodeSeachhelpdata().size() ; i++ )
element = (ISeachhelpdataElement)wdThis.wdGetContext().nodeSeachhelpdata().getElementAt(i);
valueSet.put(element.getID(),element.getNAME()); -
Extract "lineageId and Name" from sysssispackages Using XQuery
Hi All,
can someone help me, how to Extract "lineageId and Name" from sysssispackages?
Below query gives me the XML structure of SSIS package but need to pull only those 2 values from that
SELECT
Package= CAST(CAST(packagedata AS VARBINARY(MAX)) AS XML)
FROM [msdb].[dbo].[sysssispackages]
ThanksThanks Latheesh for responding
Below is the sample structure
<DTS:Executable xmlns:DTS="www.microsoft.com/SqlServer/Dts" DTS:ExecutableType="SSIS.Package.2">
<DTS:Property DTS:Name="PackageFormatVersion">3</DTS:Property>
<DTS:Property DTS:Name="VersionComments" />
<DTS:Property DTS:Name="CreatorName">MyWorld\Sar</DTS:Property>
<DTS:Property DTS:Name="CreatorComputerName">MYWORLD</DTS:Property>
<DTS:Property DTS:Name="CreationDate" DTS:DataType="7">3/22/2014 8:12:40 PM</DTS:Property>
<DTS:Property DTS:Name="PackageType">5</DTS:Property>
<DTS:Property DTS:Name="ProtectionLevel">1</DTS:Property>
<DTS:Property DTS:Name="MaxConcurrentExecutables">-1</DTS:Property>
<DTS:Property DTS:Name="PackagePriorityClass">0</DTS:Property>
<DTS:Property DTS:Name="VersionMajor">1</DTS:Property>
<DTS:Property DTS:Name="VersionMinor">0</DTS:Property>
<DTS:Property DTS:Name="VersionBuild">17</DTS:Property>
<DTS:Property DTS:Name="VersionGUID">{3A8DDC68-97D0-4463-94AB-C9E1EF617E35}</DTS:Property>
<DTS:Property DTS:Name="EnableConfig">0</DTS:Property>
<DTS:Property DTS:Name="CheckpointFileName" />
<DTS:Property DTS:Name="SaveCheckpoints">0</DTS:Property>
<DTS:Property DTS:Name="CheckpointUsage">0</DTS:Property>
<DTS:Property DTS:Name="SuppressConfigurationWarnings">0</DTS:Property>
<DTS:ConnectionManager>
<DTS:Property DTS:Name="DelayValidation">0</DTS:Property>
<DTS:Property DTS:Name="ObjectName">fftest</DTS:Property>
<DTS:Property DTS:Name="DTSID">{9EE16655-EBB1-4EAB-977A-334CBABE5855}</DTS:Property>
<DTS:Property DTS:Name="Description" />
<DTS:Property DTS:Name="CreationName">FLATFILE</DTS:Property>
<DTS:ObjectData>
<DTS:ConnectionManager>
<DTS:Property DTS:Name="FileUsageType">0</DTS:Property>
<DTS:Property DTS:Name="Format">Delimited</DTS:Property>
<DTS:Property DTS:Name="LocaleID">1033</DTS:Property>
<DTS:Property DTS:Name="Unicode">0</DTS:Property>
<DTS:Property DTS:Name="HeaderRowsToSkip">0</DTS:Property>
<DTS:Property DTS:Name="HeaderRowDelimiter" xml:space="preserve">_x000D__x000A_</DTS:Property>
<DTS:Property DTS:Name="ColumnNamesInFirstDataRow">-1</DTS:Property>
<DTS:Property DTS:Name="RowDelimiter" xml:space="preserve" />
<DTS:Property DTS:Name="DataRowsToSkip">0</DTS:Property>
<DTS:Property DTS:Name="TextQualifier"><none></DTS:Property>
<DTS:Property DTS:Name="CodePage">1252</DTS:Property>
<DTS:FlatFileColumn>
<DTS:Property DTS:Name="ColumnType">Delimited</DTS:Property>
<DTS:Property DTS:Name="ColumnDelimiter" xml:space="preserve">_x0009_</DTS:Property>
<DTS:Property DTS:Name="ColumnWidth">0</DTS:Property>
<DTS:Property DTS:Name="MaximumWidth">50</DTS:Property>
<DTS:Property DTS:Name="DataType">129</DTS:Property>
<DTS:Property DTS:Name="DataPrecision">0</DTS:Property>
<DTS:Property DTS:Name="DataScale">0</DTS:Property>
<DTS:Property DTS:Name="TextQualified">-1</DTS:Property>
<DTS:Property DTS:Name="ObjectName">ID</DTS:Property>
<DTS:Property DTS:Name="DTSID">{D444A9DE-0FFC-47E9-9747-3A481D7DCEAA}</DTS:Property>
<DTS:Property DTS:Name="Description" />
<DTS:Property DTS:Name="CreationName" />
</DTS:FlatFileColumn>
<DTS:FlatFileColumn>
<DTS:Property DTS:Name="ColumnType">Delimited</DTS:Property>
<DTS:Property DTS:Name="ColumnDelimiter" xml:space="preserve">_x000D__x000A_</DTS:Property>
<DTS:Property DTS:Name="ColumnWidth">0</DTS:Property>
<DTS:Property DTS:Name="MaximumWidth">50</DTS:Property>
<DTS:Property DTS:Name="DataType">129</DTS:Property>
<DTS:Property DTS:Name="DataPrecision">0</DTS:Property>
<DTS:Property DTS:Name="DataScale">0</DTS:Property>
<DTS:Property DTS:Name="TextQualified">-1</DTS:Property>
<DTS:Property DTS:Name="ObjectName">Name</DTS:Property>
<DTS:Property DTS:Name="DTSID">{9BF026D2-6FD7-4038-93A7-25B1AA4DE092}</DTS:Property>
<DTS:Property DTS:Name="Description" />
<DTS:Property DTS:Name="CreationName" />
</DTS:FlatFileColumn>
<DTS:Property DTS:Name="ConnectionString">D:\XML Test\test.txt</DTS:Property>
</DTS:ConnectionManager>
</DTS:ObjectData>
</DTS:ConnectionManager>
<DTS:ConnectionManager>
<DTS:Property DTS:Name="DelayValidation">0</DTS:Property>
<DTS:Property DTS:Name="ObjectName">LocalHost.MyPOCs</DTS:Property>
<DTS:Property DTS:Name="DTSID">{DCE78F76-3B49-4318-993E-13FE9B71E2D5}</DTS:Property>
<DTS:Property DTS:Name="Description" />
<DTS:Property DTS:Name="CreationName">OLEDB</DTS:Property>
<DTS:ObjectData>
<DTS:ConnectionManager>
<DTS:Property DTS:Name="Retain">0</DTS:Property>
<DTS:Property DTS:Name="ConnectionString">Data Source=.;Initial Catalog=MyPOCs;Provider=SQLNCLI10.1;Integrated Security=SSPI;Auto Translate=False;Application Name=SSIS-Package-{DCE78F76-3B49-4318-993E-13FE9B71E2D5}LocalHost.MyPOCs;</DTS:Property>
</DTS:ConnectionManager>
</DTS:ObjectData>
</DTS:ConnectionManager>
<DTS:Property DTS:Name="LastModifiedProductVersion">10.0.1600.22</DTS:Property>
<DTS:Property DTS:Name="ForceExecValue">0</DTS:Property>
<DTS:Property DTS:Name="ExecValue" DTS:DataType="3">0</DTS:Property>
<DTS:Property DTS:Name="ForceExecutionResult">-1</DTS:Property>
<DTS:Property DTS:Name="Disabled">0</DTS:Property>
<DTS:Property DTS:Name="FailPackageOnFailure">0</DTS:Property>
<DTS:Property DTS:Name="FailParentOnFailure">0</DTS:Property>
<DTS:Property DTS:Name="MaxErrorCount">1</DTS:Property>
<DTS:Property DTS:Name="ISOLevel">1048576</DTS:Property>
<DTS:Property DTS:Name="LocaleID">1033</DTS:Property>
<DTS:Property DTS:Name="TransactionOption">1</DTS:Property>
<DTS:Property DTS:Name="DelayValidation">0</DTS:Property>
<DTS:Variable>
<DTS:Property DTS:Name="Expression" />
<DTS:Property DTS:Name="EvaluateAsExpression">0</DTS:Property>
<DTS:Property DTS:Name="Namespace">User</DTS:Property>
<DTS:Property DTS:Name="ReadOnly">0</DTS:Property>
<DTS:Property DTS:Name="RaiseChangedEvent">0</DTS:Property>
<DTS:Property DTS:Name="IncludeInDebugDump">2345</DTS:Property>
<DTS:VariableValue DTS:DataType="8" />
<DTS:Property DTS:Name="ObjectName">Error</DTS:Property>
<DTS:Property DTS:Name="DTSID">{F72B40BF-8B93-429B-8035-96AECD3631A3}</DTS:Property>
<DTS:Property DTS:Name="Description" />
<DTS:Property DTS:Name="CreationName" />
</DTS:Variable>
<DTS:LoggingOptions>
<DTS:Property DTS:Name="LoggingMode">0</DTS:Property>
<DTS:Property DTS:Name="FilterKind">1</DTS:Property>
<DTS:Property DTS:Name="EventFilter" DTS:DataType="8" />
</DTS:LoggingOptions>
<DTS:Executable DTS:ExecutableType="SSIS.Pipeline.2">
<DTS:Property DTS:Name="ExecutionLocation">0</DTS:Property>
<DTS:Property DTS:Name="ExecutionAddress" />
<DTS:Property DTS:Name="TaskContact">Performs high-performance data extraction, transformation and loading;Microsoft Corporation; Microsoft SQL Server v10; (C) 2007 Microsoft Corporation; All Rights Reserved;http://www.microsoft.com/sql/support/default.asp;1</DTS:Property>
<DTS:Property DTS:Name="ForceExecValue">0</DTS:Property>
<DTS:Property DTS:Name="ExecValue" DTS:DataType="3">0</DTS:Property>
<DTS:Property DTS:Name="ForceExecutionResult">-1</DTS:Property>
<DTS:Property DTS:Name="Disabled">0</DTS:Property>
<DTS:Property DTS:Name="FailPackageOnFailure">0</DTS:Property>
<DTS:Property DTS:Name="FailParentOnFailure">0</DTS:Property>
<DTS:Property DTS:Name="MaxErrorCount">1</DTS:Property>
<DTS:Property DTS:Name="ISOLevel">1048576</DTS:Property>
<DTS:Property DTS:Name="LocaleID">-1</DTS:Property>
<DTS:Property DTS:Name="TransactionOption">1</DTS:Property>
<DTS:Property DTS:Name="DelayValidation">0</DTS:Property>
<DTS:LoggingOptions>
<DTS:Property DTS:Name="LoggingMode">0</DTS:Property>
<DTS:Property DTS:Name="FilterKind">1</DTS:Property>
<DTS:Property DTS:Name="EventFilter" DTS:DataType="8" />
</DTS:LoggingOptions>
<DTS:Property DTS:Name="ObjectName">Data Flow Task</DTS:Property>
<DTS:Property DTS:Name="DTSID">{9D6476B8-543C-488D-96C2-7C787F892763}</DTS:Property>
<DTS:Property DTS:Name="Description">Data Flow Task</DTS:Property>
<DTS:Property DTS:Name="CreationName">SSIS.Pipeline.2</DTS:Property>
<DTS:Property DTS:Name="DisableEventHandlers">0</DTS:Property>
<DTS:EventHandler>
<DTS:Property DTS:Name="EventID">0</DTS:Property>
<DTS:Property DTS:Name="EventName">OnError</DTS:Property>
<DTS:Property DTS:Name="ForceExecValue">0</DTS:Property>
<DTS:Property DTS:Name="ExecValue" DTS:DataType="3">0</DTS:Property>
<DTS:Property DTS:Name="ForceExecutionResult">-1</DTS:Property>
<DTS:Property DTS:Name="Disabled">0</DTS:Property>
<DTS:Property DTS:Name="FailPackageOnFailure">0</DTS:Property>
<DTS:Property DTS:Name="FailParentOnFailure">0</DTS:Property>
<DTS:Property DTS:Name="MaxErrorCount">1</DTS:Property>
<DTS:Property DTS:Name="ISOLevel">1048576</DTS:Property>
<DTS:Property DTS:Name="LocaleID">-1</DTS:Property>
<DTS:Property DTS:Name="TransactionOption">1</DTS:Property>
<DTS:Property DTS:Name="DelayValidation">0</DTS:Property>
<DTS:Variable>
<DTS:Property DTS:Name="Expression" />
<DTS:Property DTS:Name="EvaluateAsExpression">0</DTS:Property>
<DTS:Property DTS:Name="Namespace">System</DTS:Property>
<DTS:Property DTS:Name="ReadOnly">0</DTS:Property>
<DTS:Property DTS:Name="RaiseChangedEvent">0</DTS:Property>
<DTS:Property DTS:Name="IncludeInDebugDump">6789</DTS:Property>
<DTS:VariableValue DTS:DataType="11">-1</DTS:VariableValue>
<DTS:Property DTS:Name="ObjectName">Propagate</DTS:Property>
<DTS:Property DTS:Name="DTSID">{C0BBF3C9-2116-4152-AB9E-FF436DA214CB}</DTS:Property>
<DTS:Property DTS:Name="Description">The propagate property of the event</DTS:Property>
<DTS:Property DTS:Name="CreationName" />
</DTS:Variable>
<DTS:LoggingOptions>
<DTS:Property DTS:Name="LoggingMode">0</DTS:Property>
<DTS:Property DTS:Name="FilterKind">1</DTS:Property>
<DTS:Property DTS:Name="EventFilter" DTS:DataType="8" />
</DTS:LoggingOptions>
<DTS:Executable DTS:ExecutableType="Microsoft.SqlServer.Dts.Tasks.ExecuteSQLTask.ExecuteSQLTask, Microsoft.SqlServer.SQLTask, Version=10.0.0.0, Culture=neutral, PublicKeyToken=89845dcd8080cc91">
<DTS:Property DTS:Name="ExecutionLocation">0</DTS:Property>
<DTS:Property DTS:Name="ExecutionAddress" />
<DTS:Property DTS:Name="TaskContact">Execute SQL Task; Microsoft Corporation; Microsoft SQL Server 2008; © 2007 Microsoft Corporation; All Rights Reserved;http://www.microsoft.com/sql/support/default.asp;1</DTS:Property>
<DTS:Property DTS:Name="ForceExecValue">0</DTS:Property>
<DTS:Property DTS:Name="ExecValue" DTS:DataType="3">0</DTS:Property>
<DTS:Property DTS:Name="ForceExecutionResult">-1</DTS:Property>
<DTS:Property DTS:Name="Disabled">0</DTS:Property>
<DTS:Property DTS:Name="FailPackageOnFailure">0</DTS:Property>
<DTS:Property DTS:Name="FailParentOnFailure">0</DTS:Property>
<DTS:Property DTS:Name="MaxErrorCount">1</DTS:Property>
<DTS:Property DTS:Name="ISOLevel">1048576</DTS:Property>
<DTS:Property DTS:Name="LocaleID">-1</DTS:Property>
<DTS:Property DTS:Name="TransactionOption">1</DTS:Property>
<DTS:Property DTS:Name="DelayValidation">0</DTS:Property>
<DTS:LoggingOptions>
<DTS:Property DTS:Name="LoggingMode">0</DTS:Property>
<DTS:Property DTS:Name="FilterKind">1</DTS:Property>
<DTS:Property DTS:Name="EventFilter" DTS:DataType="8" />
</DTS:LoggingOptions>
<DTS:Property DTS:Name="ObjectName">Execute SQL Task</DTS:Property>
<DTS:Property DTS:Name="DTSID">{380C43D8-73EC-40A9-935B-5CA483E12652}</DTS:Property>
<DTS:Property DTS:Name="Description">Execute SQL Task</DTS:Property>
<DTS:Property DTS:Name="CreationName">Microsoft.SqlServer.Dts.Tasks.ExecuteSQLTask.ExecuteSQLTask, Microsoft.SqlServer.SQLTask, Version=10.0.0.0, Culture=neutral, PublicKeyToken=89845dcd8080cc91</DTS:Property>
<DTS:Property DTS:Name="DisableEventHandlers">0</DTS:Property>
<DTS:ObjectData>
<SQLTask:SqlTaskData xmlns:SQLTask="www.microsoft.com/sqlserver/dts/tasks/sqltask" SQLTask:Connection="{DCE78F76-3B49-4318-993E-13FE9B71E2D5}" SQLTask:TimeOut="0" SQLTask:IsStoredProc="False" SQLTask:BypassPrepare="True"
SQLTask:SqlStmtSourceType="DirectInput" SQLTask:SqlStatementSource="Declare @Error Varchar(250) = ?
 
Select @Error as Errodesc" SQLTask:CodePage="1252" SQLTask:ResultType="ResultSetType_SingleRow">
<SQLTask:ResultBinding SQLTask:ResultName="Errodesc" SQLTask:DtsVariableName="User::Error" />
<SQLTask:ParameterBinding SQLTask:ParameterName="@Error" SQLTask:DtsVariableName="System::ErrorDescription" SQLTask:ParameterDirection="Input" SQLTask:DataType="129" SQLTask:ParameterSize="-1" />
</SQLTask:SqlTaskData>
</DTS:ObjectData>
</DTS:Executable>
<DTS:Property DTS:Name="DTSID">{9FF1A2A2-474A-4477-BE6A-6CD9AEEDC0D2}</DTS:Property>
<DTS:Property DTS:Name="Description" />
<DTS:Property DTS:Name="CreationName">OnError</DTS:Property>
</DTS:EventHandler>
<DTS:ObjectData>
<pipeline id="0" name="pipelineXml" description="pipelineXml" defaultBufferMaxRows="10000" engineThreads="10" defaultBufferSize="10485760" BLOBTempStoragePath="" bufferTempStoragePath="" runInOptimizedMode="true">
<components>
<component id="18" name="OLE DB Destination" componentClassID="{5A0B62E8-D91D-49F5-94A5-7BE58DE508F0}" description="OLE DB Destination" localeId="-1" usesDispositions="true" validateExternalMetadata="True" version="4" pipelineVersion="0"
contactInfo="OLE DB Destination;Microsoft Corporation; Microsoft SqlServer v10; (C) Microsoft Corporation; All Rights Reserved; http://www.microsoft.com/sql/support;4">
<properties>
<property id="19" name="CommandTimeout" dataType="System.Int32" state="default" isArray="false" description="The number of seconds before a command times out. A value of 0 indicates an infinite time-out."
typeConverter="" UITypeEditor="" containsID="false" expressionType="None">0</property>
<property id="20" name="OpenRowset" dataType="System.String" state="default" isArray="false" description="Specifies the name of the database object used to open a rowset." typeConverter="" UITypeEditor=""
containsID="false" expressionType="None">[Datacheck]</property>
<property id="21" name="OpenRowsetVariable" dataType="System.String" state="default" isArray="false" description="Specifies the variable that contains the name of the database object used to open a rowset."
typeConverter="" UITypeEditor="" containsID="false" expressionType="None" />
<property id="22" name="SqlCommand" dataType="System.String" state="default" isArray="false" description="The SQL command to be executed." typeConverter="" UITypeEditor="Microsoft.DataTransformationServices.Controls.ModalMultilineStringEditor,
Microsoft.DataTransformationServices.Controls, Version=10.0.0.0, Culture=neutral, PublicKeyToken=89845dcd8080cc91" containsID="false" expressionType="None" />
<property id="23" name="DefaultCodePage" dataType="System.Int32" state="default" isArray="false" description="Specifies the column code page to use when code page information is unavailable from the data source."
typeConverter="" UITypeEditor="" containsID="false" expressionType="None">1252</property>
<property id="24" name="AlwaysUseDefaultCodePage" dataType="System.Boolean" state="default" isArray="false" description="Forces the use of the DefaultCodePage property value when describing character data."
typeConverter="" UITypeEditor="" containsID="false" expressionType="None">false</property>
<property id="25" name="AccessMode" dataType="System.Int32" state="default" isArray="false" description="Specifies the mode used to access the database." typeConverter="AccessMode" UITypeEditor="" containsID="false"
expressionType="None">3</property>
<property id="27" name="FastLoadKeepIdentity" dataType="System.Boolean" state="default" isArray="false" description="Indicates whether the values supplied for identity columns will be copied to the destination.
If false, values for identity columns will be auto-generated at the destination. Applies only if fast load is turned on." typeConverter="" UITypeEditor="" containsID="false" expressionType="None">false</property>
<property id="28" name="FastLoadKeepNulls" dataType="System.Boolean" state="default" isArray="false" description="Indicates whether the columns containing null will have null inserted in the destination. If
false, columns containing null will have their default values inserted at the destination. Applies only if fast load is turned on." typeConverter="" UITypeEditor="" containsID="false" expressionType="None">false</property>
<property id="29" name="FastLoadOptions" dataType="System.String" state="default" isArray="false" description="Specifies options to be used with fast load. Applies only if fast load is turned on." typeConverter=""
UITypeEditor="" containsID="false" expressionType="None">TABLOCK,CHECK_CONSTRAINTS</property>
<property id="30" name="FastLoadMaxInsertCommitSize" dataType="System.Int32" state="default" isArray="false" description="Specifies when commits are issued during data insertion. A value of 0 specifies
that one commit will be issued at the end of data insertion. Applies only if fast load is turned on." typeConverter="" UITypeEditor="" containsID="false" expressionType="None">2147483647</property>
</properties>
<connections>
<connection id="26" name="OleDbConnection" description="The OLE DB runtime connection used to access the database." connectionManagerID="{DCE78F76-3B49-4318-993E-13FE9B71E2D5}" />
</connections>
<inputs>
<input id="31" name="OLE DB Destination Input" description="" hasSideEffects="true" dangling="false" errorOrTruncationOperation="Insert" errorRowDisposition="FailComponent" truncationRowDisposition="NotUsed">
<inputColumns>
<inputColumn id="39" name="" description="" lineageId="121" usageType="readOnly" errorOrTruncationOperation="" errorRowDisposition="NotUsed" truncationRowDisposition="NotUsed" externalMetadataColumnId="37"
mappedColumnId="0" />
<inputColumn id="186" name="" description="" lineageId="181" usageType="readOnly" errorOrTruncationOperation="" errorRowDisposition="NotUsed" truncationRowDisposition="NotUsed" externalMetadataColumnId="36"
mappedColumnId="0" />
</inputColumns> -
Difference between Batch input and Direct Input
Hi please tell me the difference between Batch Input and Direct Input in BDC?
hi aparna,
<b>DIRECT INPUT</b>
TO ENTER THE DATA INTO THE CORRESPONDING DATABASE TABLES DIRECTLY, THE SYSTEM CALLS A NUMBER OF FUNCTION MODULES THAT EXECUTE ANY NECESSARY CHECKS. IN CASE OF ERRORS, THE DIRECT INPUT TECHNIQUE PROVIDES A RESTART MECHANISM. HOWEVER, TO BE ABLE TO ACTIVATE THE RESTART MECHANISM, DIRECT INPUT PROGRAMS MUST BE EXECUTED IN THE BACKGROUND ONLY. DIRECT INPUT CHECKS THE DATA THOROUGHLY AND THEN UPDATES THE DATABASE DIRECTLY.
TO MAINTAIN AND STRAT THESE PROGRAMS, USE PGM RBMVSHOW OR THE TRANSACTION BMVO.
<b>BATCH INPUT</b>
TYPES SESSION METHOD, CALL TRANSACTION, DIRECT INPUT.
TO SAVE DATA IN THE BDCTAB, USE THE FIELDNAME BDC_OKCODE AND FIELD VALUE OF /11.
BDCDATA
THIS IS A STRUCTURE WHICH CONTAINS THE FOLLOWING FIELDS.
PROGRAM NAME OF TH MOD PROG ASSOCIATED WITH THE SCREEN. SET ONLY FOR THE FIRST RECORD OF THE SCREEN.
DYNPRO SCREEN NUMBER. ALSO SET ONLY FOR FIRST RECORD.
DYNBEGIN INDICATES THE FIRST RECORD OF THE SCREEN. SET X FOR FIRST RECORD OTHERWISE .
FNAM FIELD NAME.
FVAL VALUE FOR THE FIELD NAMED IN FNAM.
THE FIRST STEP IN BDC IS TO UPLOAD DATA FROM THE FLAT FILE OR SEQUENTIAL FILE TO THIS BDCTABLE.
SESSION METHOD
WE USE 3 FUNCTION MODULES IN THIS SESSION METHOD.
1) BDC_OPEN_GROUP
USER NAME: USER NAME
GROUP: NAME OF THE SESSION
LOCK DATE: THE DATE ON WHICH YOU WANT TO PROCESS THE SESSION.
KEEP: THIS PARAMETER IS PASSED AS X WHEN YOU WANT TO RETAIN SESSION AFTER PROCESSING IT OR TO DELETE IT AFTER PROCESSING.
THIS CREATES A SESSION
2) BDC_INSERT
TCODE: TRANSACTION NAME
DYNPROTAB: BDC DATA
THIS CREATES A SEESION AND DATA IS TRANSFERRED O SESSION.
3) BDC_CLOSE_GROUP THIS CLOSES THE BDC GROUP.
ONLY ONE SESSION CAN BE CREATED USING BDC_OPEN_GROUP. BUT MULTIPLE TRANSACTIONS CAN BE PROCESSED USING BDC_INSERT.
CALL TRANSACTION
CALL TRANSACTION <TCODE> USING <BDCTAB>
MODE <A/N/E>
UPDATE <S/A>
MESSAGES INTO <MSGTAB>.
A ALL SCREEN MODE. ALL THE SCREEN OF THE TRANSACTION ARE DISPLAYED.
N NO SCREEN MODE. NO SCREEN IS DISPLAYED WHEN YOU EXECUTE THE TRANSACTION.
E ERROR SCREEN. IF THE SCREEN HAS ERROR RECORD, THEN THAT SCREEN WILL BE DISPLAYED.
S - IF YOU CHANGE DATA OF ONE TABLE THEN ALL THE RELATED TABLES GETS UPDATED. AND SY-SUBRC IS RETURNED I.E., SY-SUBRC IS RETURNED FOR ONCE AND ALL.
A - WHEN YOU CHANGE DATA OF ONE TABLE, THE SY-SUBRC IS RETURNED. AND THEN UPDATING OF OTHER AFFECTED TABLES TAKES PLACE. SO IF SYSTEM FAILS TO UPDATE OTHER TABLES, STILL SY-SUBRC RETURNED IS 0 (I.E., WHEN FIRST TABLE GETS UPDATED
WHEN YOU UPDATE DATABASE TABLE, OPERATION IS EITHER SUCCESSFUL OR UNSUCCESSFUL OR OPERATION IS SUCCESSFUL WITH SOME WARNING. THESE MESSAGES ARE STORED IN INTERNAL TABLE, WHICH YOU SPECIFY ALONG WITH MESSAGE STATEMENT. THIS INTERNAL TABLE SHOULD BE DECLARED LIKE BDCMSGCOLL, A STRUCTURE AVAILABLE IN ABAP/4. IT CONTAINS THE FOLLOWING FIELDS: TCODE, DYNAME, DYNUMB, MSGTYP, MSGID.
DIFFERENCE BETWEEN SESSION AND CALL TRANSACTION
SESSION METHOD CALL TRANSACTION
1. DATA IS NOT UPDATED IN DATABASE TABLE UNLESS SESSION IS PROCESSED. IMMEDIATE UPDATION IN DATABASE TABLE.
2. NO SY-SUBRC IS RETURNED. SY-SUBRC IS RETURNED.
3. ERROR LOG IS CREATED FOR ERROR RECORDS. ERRORS NEED TO BE HANDLED EXPLICITLY
4. UPDATION IN DATABASE TABLE IS ALWAYS SYNCHRONOUS
UPDATION IN DATABASE TABLE CAN BE SYNCHRONOUS OR ASYNCHRONOUS.
5. ASYNCHRONOUS PROCESSING SYNCHRONOUS PROCESSING
6. TRANSFERS DATA FOR SINGLE TRANSACTIONS TRANSFERS DATA FOR MULTIPLE TRANSACTIONS
ERROR HANDLING IN CALL TRANSACTION
1) CREATE AN INTERNAL TABLE SIMILAR TO THE STRUCTURE OF YOUR LOCAL FILE.
2) CREATE BDCTAB LIKE BDCDATA.
3) CREATE BDCMSG LIKE BDCMSGCOLL.
4) CREATE AN INTERNAL TABLE SIMILAR TO THE 1ST INTERNAL TABLE.
5) UPLOAD FN UPLOADS DATA FROM THE LOCAL FILE TO THE ITAB.
6) LOOP AT ITAB.
POPULATE BDCTAB TABLE.
CALL TRANSACTION STATEMENT.
PERFORM CHECK.
REFRESH BDCTAB.
ENDLOOP.
7) FORM CHECK.
IF SY_SUBRC <> 0.
CALL FUNCTION FORMAT_MESSAGE.
APPEND ITAB2.
ENDFORM.
TRANSACTION FOR RECORDING SHDB.
MAX TIME ALLOWED FOR ONLINE EXECUTION 300 SECONDS.
<b>
Pls reward if helpful.</b> -
Adding link to the photo and Name in the outlook contact card -Enterprise wide
How can I make the name and photo in the outlook contact card link to my profile page? I read articles where it is mentoined that the URL is set in Registry, currently my organization does not have any link associated with photo and name in contact card.
I want to implement this across the organization , any deployment or changes that I need to do to implement this across?
Appreciate if you can provide details on how this is done. The url will look like this:
https://www.produrl.com/userid={userid}
How can I dynamically add respective userid in the link?Appreciate your response on this.So you want to redesign the contact card in Outlook? Are you using SharePoint? If signed into sharepoint via the social connect, there is a link to the mysharepoint page under View source. I don't think you can change the link or customize the card,
beyond what is listed here:
http://technet.microsoft.com/en-us/library/ff631135(v=office.15).aspx#BKMK_ContactCards
Diane Poremsky [MVP - Outlook]
Outlook & Exchange Solutions Center
Outlook Tips
Subscribe to Exchange Messaging Outlook weekly newsletter -
Importing CD to Artist folder\Album folder\file with track number and name:
I have a problem then importing my cd’s to my harddisk using iTunes.
On my previous pc I got what I want, Artist folder, Album folder and file with track number and name:
e.g.
D:\My Music\B.B. King\Blues On The Bayou\01 Blues Boys Tune.mp3
D:\My Music\B.B. King\Blues On The Bayou\02 Bad Case Of Love.mp3
D:\My Music\B.B. King\Blues On The Bayou\03 I'll Survive.mp3
But now I get:
D:\My Music\Compilations\Blues On The Bayou\01 Blues Boys Tune.mp3
D:\My Music\ Compilations \02 Bad Case Of Love.mp3
D:\My Music\ Compilations \03 I'll Survive.mp3
In iTunes my settings are Edit -> Preferences -> Advanced: iTunes Music folder: D:\My Music and checkmark in both: “Keep iTunes Music folder organized” and “Copy files to iTunes Music folder when adding to library”.
My version of iTunes is 8.0.1.11
Thanks in advance
PeterIt will depend on the album. Gracenote considers anthologies, a collection of tracks by the same artist taken from different albums, as a compilation. In iTunes the compliation setting should really only be applied to a collection of tracks by different artists.
tt2
Maybe you are looking for
-
Random Error in Batch Processing
Hi All, I have a batch process that reads records from DB, pass them to Mediator which calls a BPEL process. During a huge batch processing of 10000 records, we are getting errors in random fashion as under. This error is not specific to a particular
-
Product update/upgrade policy by Adobe
Adobe is selling software with less validity than a yogurth: I bought the upgrade of Elements suite to version 8 in August this year and One and a half month later this product has expired because Adobe released version 9. Any decent company would pr
-
Time machine cant see old backups with New Macbook
Hello, I recently migrated from an iMac to a MacBookPro6. I plugged in my externals hard drive into my Macbook and was accessing old backups from my iMac without a problem. THEN I used the hard drive to backup with time machine and now I cannot acces
-
Always backing up....
every time I plug my touch into itunes 7.7, it does this long back up thing every time. I have the 2.0 firmware and it just seems like a real drag to have to back up everything every time. What gives? Am I doing something wrong?
-
How do i remove " get Plus R for adobe?
How do I remove " get Plus R for Adobe?