How to store information in an orchestration
Hi
I've been tasked with a proof-of-concept with biztalk. I want to create an orchestration, which calls a service and receives a token, which is needed for subsequent requests.
So I need to extract some information from a response-message and include that in subsequent messages. What is the best way to do something like that? Can I extract some part of a message into some kind of variable, that is scoped to the orchestration and
then use that variable-value when creating new messages using a map?
Any hints would be appreciated.
Hi Henning,
The best way to do that would be using multi-input map as suggested by Johns. Use the response message and the input message as source schema and your subsequent message as destination schema in a map. Map the fields that are required from the response message
to the destination schema.
Please indicate "Mark as Answer" or "Mark as Helpful" if this post has answered the question
Regards,
Rahul Madaan
biztalkvillage.blogspot.com
Similar Messages
-
How to store information in icloud
Hi all we have just set up the icloud account. is there any easy to use instructions on how to store information from our computer ie music into icloud.
Welcome to the Apple Community.
Your iCloud account is not for storing music, that is done through your iTunes account. Any previous purchases can be redownloaded using iTunes in the cloud (use the purchased section in the iTunes store), or if you subscribe to iTunes match you can store all your library (up to 25,000 tunes) in the cloud. -
Document from file - how better store information about document?
I have a text file that contains information about documents (content from groups than define the document - one row is one document). Every group content from fields (from 10 to 70 in every group). Document consist of 9 groups. In one documen can difference number of groups (> 1 group). E.g. one document can have 3 group1, 2 group6. In another document 2 group9, 1 group 6 and so on. I need to store document in DB and must edit document (by JFrame). To store document I use object MyDocument to store information about document.
3 solutions:
1. Store every group as list from hastables
public class MyDocument {
private ArrayList<Hashtable<String, String>> group1;
private ArrayList<Hashtable<String, String>> group2;
private ArrayList<Hashtable<String, String>> group3;
private ArrayList<Hashtable<String, String>> group4;
private ArrayList<Hashtable<String, String>> group5;
private ArrayList<Hashtable<String, String>> group6;
private ArrayList<Hashtable<String, String>> group7;
private ArrayList<Hashtable<String, String>> group8;
private ArrayList<Hashtable<String, String>> group9; 2. Store all groups as one list from hashtables
public class MyDocument2 {
private ArrayList<Hashtable<String, String>> allGroups;
} 3. Store groups as lists consist from individual objects (MyDocumentGroup1, MyDocumentGroup2 and so on.)
public class MyDocument3 {
private ArrayList<MyDocumentGroup1> group1;
private ArrayList<MyDocumentGroup2> group2;
private ArrayList<MyDocumentGroup3> group3;
private ArrayList<MyDocumentGroup4> group4;
private ArrayList<MyDocumentGroup5> group5;
private ArrayList<MyDocumentGroup6> group6;
private ArrayList<MyDocumentGroup7> group7;
private ArrayList<MyDocumentGroup8> group8;
private ArrayList<MyDocumentGroup9> group9;
public class MyDocumentGroup1 {
private ArrayList<Hashtable<String, String>> group1;
public class MyDocumentGroup9 {
private ArrayList<Hashtable<String, String>> group9;
}What solutions is better? Or maybe has another solution?Maybe better to store one document in ONE HashMap
public class M2Document {
private HashMap<String, String> data = null;in the next format:
-------------key ---------value----------
GroupID_FN | some value
where, GroupID is ID of group, FN - field number
example:
-------------key ---------value----------
Group1_1 | some value
Group1_2 | some value
Group2_1 | some value
Group2_2 | some value
Group3_1 | some value
Group3_2 | some value -
A friend of my daughter's used my mac computer when she got her new iphone to help set it up. Now that I have a new iphone, her apps and all the app store information is stuck on my phone. Her app account keeps showing up when I try to install something new, and I obviously do not have her password. How do I get this off my phone??
Open iTunes on the computer. Without any iPhone plugged in, go to iTunes' menu and do Store > Sign Out.
The click the iTunes Store row on the left of the iTunes display. You can then sign on from the signon row on the right side of the display using the correct Apple ID and password. Then you'll be all set! -
How do I remove my App store information from a Mac about to be sold
How do I remove my App Store information from
a Mac about to be sold ?Before you sell or give away your computer, in addition to the steps mentioned in this support article, take these steps:
Run Apple Diagnostics or the Apple Hardware Test. The buyer will do this (or he should), and you don't want to be surprised by the results.
Reset the PRAM and the SMC, which might contain personal information.
If you set a firmware password, remove it by running Firmware Password Utility in Recovery mode.
If you activated FileVault in OS X 10.7 or later, turn it off.
If you use Boot Camp, the partition must be deleted.
If you created any other data partitions on the internal drive, remove them in Disk Utility.
Erase the data partition(s) with the option to zero out data. An SSD doesn't need to be zeroed.
You can't legally or practically transfer any software downloaded from the Mac App Store to the new owner of the machine, even if it was free. That includes OS X, so if you upgraded to OS X 10.7 or later, you must reinstall an older OS, either from the installation media, if applicable, or by starting up in Internet Recovery mode (option-command-R at the startup chime.) If you installed from physical media, deliver those to the new owner.
If you're selling the machine, or donating it in working order, and it originally shipped with OS X 10.4 or 10.5, then you have the option of installing either from the discs that came with it or from a retail Snow Leopard disc (which you must then transfer with the machine.) The buyer should understand that if he doesn't get the original discs from you, he won't get the bundled iLife applications or the Apple Hardware Test. Replacements for the original discs can be ordered from Apple.
The new owner will have to redownload any software that came from the App Store, including OS X upgrades, under his or her Apple ID. If you ever updated the bundled iLife applications (Garage Band, iMovie, and iPhoto) through the App Store, you can't transfer those either.
Remove the machine from your list of registered products. If it's still covered by an AppleCare Protection Plan, transfer the coverage to the new owner by following the instructions in the AppleCare Terms and Conditions (under the heading "Transfer of Plan.") -
How to store / get application initialization information
Hi
Do you have any idea how to store application initialization information in a secured file and get them while running the application? Will appreciate if you could give sample code.
Thanks
mortozaI am not sure what you mean but this section reads records from an ini-file and stores them into different combo boxes.
The name of the ini-file is stored in a resource file and theres where I get the file name.
try
BufferedReader fin = new BufferedReader(new
FileReader(getResourceString("LoginPanel.myIniFile")));
while ((s = fin.readLine()) != null)
if (s.startsWith("sys"))
sysCombo.addItem(s.substring(7));
else if (s.startsWith("usr"))
usrCombo.addItem(s.substring(7));
else if (s.startsWith("cmp"))
cmpCombo.addItem(s.substring(7));
else if (s.startsWith("env"))
envCombo.addItem(s.substring(7));
else if (s.startsWith("lib"))
dtaCombo.addItem(s.substring(7));
}// End try
Extract from the ini-file:
[Libraries]
lib0 = Select Database
lib1 = DATABASE1
lib2 = DATABASE2
lib3 = DATABASE3
lib3 = DATABASE4
[Environment]
env0 = SelectEnvironment
env1 = ENVRONMENT1
env2 = ENVRONMENT2
env3 = ENVRONMENT3
[User]
usr0 = Select User
usr1 = USER1
usr2 = USER2
usr3 = USER3
This specific case use the information to log on to various systems.
Klint -
flashes on adobe flash player....Local storage cfiles 5mins. requests permission to store information on your computer accept or deny. How do I stop this??
From the menu bar, select
▹ System Preferences ▹ Flash Player ▹ Storage
Select either one of the radio buttons marked
Allow sites to save information on this computer
Block all sites from storing information on this computer -
How to store multiple files from SAp in to Application server?
Hi Guys,
Can anybody tell me how to store multiple files from SAP into Application server.in my application i have to get the data from SAP tables BSEG , BKPF , BSAK and BSIK that to daily i have to do.
Any Logic or Code for how to do is welcomed.
plz help me urgently.
Thanks,
GopiHi,
directories creates basis. If you have task to store data in application server you already should have information into which folder you have to do it. If you don't have this information because it is just for example training for next task then you can use your personal folder into which you have access. To get list of all available folders please look at attached code and form get_directories (you get the list of folders you see in transaction AL11). But don't forget: If you are using open dataset you have to have rights to access application folder!
Here you are code which I use to upload text files from local disc into application folder
Regards,
Karol
*& Report FILE_PC_TO_SAP
REPORT FILE_PC_TO_SAP.
DATA: BEGIN OF searchpoints OCCURS 100,
DIRNAME(200) TYPE c, " name of directory.
sp_name(100) TYPE c," name of entry. (may end with *)
END OF searchpoints.
DATA: BEGIN OF isearchpoints OCCURS 10,
dirname(75) TYPE c, " name of directory.
aliass(75) TYPE c, " alias for directory.
svrname(75) TYPE c, " svr where directory is availabl
sp_name(75) TYPE c, " name of entry. (may end with *)
sp_cs(10) TYPE c, " ContainsString pattern for name
END OF isearchpoints.
data: l_file type filetable.
data: l_rc type i.
data: itab type TABLE OF string.
data: g_tmp_file_path type rlgrap-filename.
data: wa_itab type string.
data: h_destin(100) type c.
data: dat type string.
INITIALIZATION.
perform get_directories.
START-OF-SELECTION.
parameters: in_file type string OBLIGATORY LOWER CASE.
parameters: destin(100) type c OBLIGATORY LOWER CASE.
CALL FUNCTION 'GUI_UPLOAD'
EXPORTING
FILENAME = in_file
"FILETYPE = 'BIN'
FILETYPE = 'ASC'
HAS_FIELD_SEPARATOR = ' '
HEADER_LENGTH = 0
READ_BY_LINE = 'X'
DAT_MODE = ' '
TABLES
DATA_TAB = itab
EXCEPTIONS
FILE_OPEN_ERROR = 1
FILE_READ_ERROR = 2
NO_BATCH = 3
GUI_REFUSE_FILETRANSFER = 4
INVALID_TYPE = 5
NO_AUTHORITY = 6
UNKNOWN_ERROR = 7
BAD_DATA_FORMAT = 8
HEADER_NOT_ALLOWED = 9
SEPARATOR_NOT_ALLOWED = 10
HEADER_TOO_LONG = 11
UNKNOWN_DP_ERROR = 12
ACCESS_DENIED = 13
DP_OUT_OF_MEMORY = 14
DISK_FULL = 15
DP_TIMEOUT = 16
OTHERS = 17.
IF sy-SUBRC <> 0.
write: / 'Error during loading input file!'.
ENDIF.
if h_destin is INITIAL.
h_destin = in_file.
endif.
CONCATENATE destin h_destin into dat SEPARATED BY '/'.
*TRANSLATE dat TO UPPER CASE.
OPEN DATASET dat FOR OUTPUT IN TEXT MODE ENCODING DEFAULT.
IF sy-SUBRC = 0.
loop at itab into wa_itab.
TRANSFER: wa_itab TO dat.
endloop.
CLOSE DATASET dat.
write: / 'File uploaded!'.
ELSE.
write: / 'Not possible to open dataset'.
ENDIF.
at selection-screen on value-request for in_file.
perform select_input_file_name.
loop at l_file into g_tmp_file_path.
move g_tmp_file_path to in_file.
h_destin = ''.
SPLIT g_tmp_file_path at '\' into table itab.
loop at itab into g_tmp_file_path.
h_destin = g_tmp_file_path.
endloop.
endloop.
at selection-screen on value-request for destin.
DATA: lt_dfies TYPE TABLE OF dfies.
DATA: lwa_dfies TYPE dfies.
CALL FUNCTION 'DDIF_FIELDINFO_GET'
EXPORTING
tabname = '/BI0/PCO_AREA'
lfieldname = 'CO_AREA'
IMPORTING
dfies_wa = lwa_dfies.
lwa_dfies-tabname = 'searchpoints'.
lwa_dfies-REPTEXT = 'Destination directory'.
lwa_dfies-LENG = 100.
lwa_dfies-INTLEN = 100.
lwa_dfies-OUTPUTLEN = 100.
lwa_dfies-fieldname = 'SP_NAME'.
APPEND lwa_dfies TO lt_dfies.
CALL FUNCTION 'F4IF_INT_TABLE_VALUE_REQUEST'
EXPORTING
RETFIELD = 'SP_NAME'
DYNPPROG = SY-REPID
DYNPNR = SY-DYNNR
DYNPROFIELD = 'destin'
VALUE_ORG = 'S'
TABLES
VALUE_TAB = searchpoints
FIELD_TAB = lt_dfies
EXCEPTIONS
PARAMETER_ERROR = 1
NO_VALUES_FOUND = 2
OTHERS = 3.
*& Form select_input_file_name
* text
form select_input_file_name.
* call function 'F4_FILENAME'
* exporting
* program_name = sy-repid
* dynpro_number = sy-dynnr
* field_name = 'PATH'
* importing
* file_name = g_tmp_file_path.
CALL METHOD CL_GUI_FRONTEND_SERVICES=>FILE_OPEN_DIALOG
EXPORTING
WINDOW_TITLE = 'Please choose a file'
"default_extension = '*.TXT'
"default_filename = 'C:\*.txt'
initial_directory = 'C:\'
file_filter = '*.*'
CHANGING
FILE_TABLE = l_file
RC = l_RC
EXCEPTIONS
FILE_OPEN_DIALOG_FAILED = 1
CNTL_ERROR = 2
ERROR_NO_GUI = 3
NOT_SUPPORTED_BY_GUI = 4
OTHERS = 5.
IF SY-SUBRC <> 0.
MESSAGE ID SY-MSGID TYPE SY-MSGTY NUMBER SY-MSGNO
WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4.
ENDIF.
endform. "select_input_file_name
*& Form WRITE_DB_HOME
* Write DB home directory
* no parameters
FORM write_db_home.
CASE sy-dbsys(3).
WHEN 'ORA'.
CALL 'C_SAPGPARAM' ID 'NAME' FIELD 'DIR_ORAHOME'
ID 'VALUE' FIELD searchpoints-dirname.
*--- C5056155 Start of ALV -------------------------------*
* PERFORM flip_flop(rsora000) USING cflag.
* WRITE: / 'DIR_ORAHOME', 30 searchpoints-dirname.
MOVE: 'DIR_ORAHOME' TO searchpoints-sp_name.
APPEND searchpoints.
*--- C5056155 End of ALV -------------------------------*
WHEN 'ADA'.
CALL 'C_GETENV' ID 'NAME' FIELD 'DBROOT'
ID 'VALUE' FIELD searchpoints-dirname.
*--- C5056155 Start of ALV -------------------------------*
* PERFORM flip_flop(rsora000) USING cflag.
* WRITE: / 'DIR_ADA_DBROOT', 30 searchpoints-dirname.
MOVE: 'DIR_ADA_DBROOT' TO searchpoints-sp_name.
APPEND searchpoints.
*--- C5056155 End of ALV -------------------------------*
WHEN 'INF'.
CALL 'C_GETENV' ID 'NAME' FIELD 'INFORMIXDIR'
ID 'VALUE' FIELD searchpoints-dirname.
*--- C5056155 Start of ALV -------------------------------*
* PERFORM flip_flop(rsora000) USING cflag.
* WRITE: / 'DIR_INF_INFORMIXDIR', 30 searchpoints-dirname.
MOVE: 'DIR_INF_INFORMIXDIR' TO searchpoints-sp_name.
APPEND searchpoints..
*--- C5056155 End of ALV -------------------------------*
WHEN 'DB6'.
CALL 'C_GETENV' ID 'NAME' FIELD 'INSTHOME'
ID 'VALUE' FIELD searchpoints-dirname.
IF sy-subrc = 0.
*--- C5056155 Start of ALV -------------------------------*
* PERFORM flip_flop(rsora000) USING cflag.
* WRITE: / 'DIR_DB2_HOME', 30 searchpoints-dirname.
MOVE: 'DIR_DB2_HOME' TO searchpoints-sp_name.
APPEND searchpoints.
*--- C5056155 End of ALV -------------------------------*
ELSE.
EXIT.
ENDIF.
WHEN OTHERS.
EXIT.
ENDCASE.
ENDFORM. " WRITE_DB_HOME
FORM get_directories.
* get the name and aliases of ALL userdefined directories
SELECT * FROM user_dir INTO isearchpoints
WHERE svrname = sy-uname.
MOVE isearchpoints-dirname to searchpoints-dirname.
MOVE isearchpoints-aliass to searchpoints-sp_name.
APPEND searchpoints.
ENDSELECT.
SELECT * FROM user_dir INTO isearchpoints
WHERE svrname = 'all'.
MOVE isearchpoints-dirname to searchpoints-dirname.
MOVE isearchpoints-aliass to searchpoints-sp_name.
APPEND searchpoints.
ENDSELECT.
* Get DB home
IF sy-dbsys(3) = 'ADA'.
PERFORM write_db_home.
ENDIF.
* get name of directory with the error files
CALL 'C_SAPGPARAM' ID 'NAME' FIELD 'DIR_ATRA'
ID 'VALUE' FIELD searchpoints-dirname.
MOVE: 'DIR_ATRA' TO searchpoints-sp_name.
APPEND searchpoints.
* get name of directory with the error files
CALL 'C_SAPGPARAM' ID 'NAME' FIELD 'DIR_BINARY'
ID 'VALUE' FIELD searchpoints-dirname.
MOVE: 'DIR_BINARY' TO searchpoints-sp_name.
APPEND searchpoints.
* get name of directory $DIR_CCMS
CALL 'C_SAPGPARAM' ID 'NAME' FIELD 'DIR_CCMS'
ID 'VALUE' FIELD searchpoints-dirname.
MOVE: 'DIR_CCMS' TO searchpoints-sp_name.
APPEND searchpoints.
* get name of directory with the error files
CALL 'C_SAPGPARAM' ID 'NAME' FIELD 'DIR_CT_LOGGING'
ID 'VALUE' FIELD searchpoints-dirname.
MOVE: 'DIR_CT_LOGGING' TO searchpoints-sp_name.
APPEND searchpoints.
* get name of directory with the error files
CALL 'C_SAPGPARAM' ID 'NAME' FIELD 'DIR_CT_RUN'
ID 'VALUE' FIELD searchpoints-dirname.
MOVE: 'DIR_CT_RUN' TO searchpoints-sp_name.
APPEND searchpoints.
* get name of directory with the error files
CALL 'C_SAPGPARAM' ID 'NAME' FIELD 'DIR_DATA'
ID 'VALUE' FIELD searchpoints-dirname.
MOVE: 'DIR_DATA' TO searchpoints-sp_name.
APPEND searchpoints.
* Get DB home
IF sy-dbsys(3) = 'DB6'.
PERFORM write_db_home.
ENDIF.
* get name of directory with the error files
CALL 'C_SAPGPARAM' ID 'NAME' FIELD 'DIR_DBMS'
ID 'VALUE' FIELD searchpoints-dirname.
MOVE: 'DIR_DBMS' TO searchpoints-sp_name.
APPEND searchpoints.
* get name of directory with the error files
CALL 'C_SAPGPARAM' ID 'NAME' FIELD 'DIR_EXECUTABLE'
ID 'VALUE' FIELD searchpoints-dirname.
MOVE: 'DIR_EXECUTABLE' TO searchpoints-sp_name.
APPEND searchpoints.
* get name of directory with the error files
CALL 'C_SAPGPARAM' ID 'NAME' FIELD 'DIR_EXE_ROOT'
ID 'VALUE' FIELD searchpoints-dirname.
MOVE: 'DIR_EXE_ROOT' TO searchpoints-sp_name.
APPEND searchpoints.
*get name of directory with the error files
CALL 'C_SAPGPARAM' ID 'NAME' FIELD 'DIR_GEN'
ID 'VALUE' FIELD searchpoints-dirname.
MOVE: 'DIR_GEN' TO searchpoints-sp_name.
APPEND searchpoints.
* get name of directory with the error files
CALL 'C_SAPGPARAM' ID 'NAME' FIELD 'DIR_GEN_ROOT'
ID 'VALUE' FIELD searchpoints-dirname.
MOVE: 'DIR_GEN_ROOT' TO searchpoints-sp_name.
APPEND searchpoints.
* get name of directory with the error files
CALL 'C_SAPGPARAM' ID 'NAME' FIELD 'DIR_GLOBAL'
ID 'VALUE' FIELD searchpoints-dirname.
MOVE: 'DIR_GLOBAL' TO searchpoints-sp_name.
APPEND searchpoints.
CALL 'C_SAPGPARAM' ID 'NAME' FIELD 'DIR_GRAPH_EXE'
ID 'VALUE' FIELD searchpoints-dirname.
MOVE: 'DIR_GRAPH_EXE' TO searchpoints-sp_name.
APPEND searchpoints.
* get name of directory with the error files
CALL 'C_SAPGPARAM' ID 'NAME' FIELD 'DIR_GRAPH_LIB'
ID 'VALUE' FIELD searchpoints-dirname.
MOVE: 'DIR_GRAPH_LIB' TO searchpoints-sp_name.
APPEND searchpoints.
* get name of directory with the error files
CALL 'C_SAPGPARAM' ID 'NAME' FIELD 'DIR_HOME'
ID 'VALUE' FIELD searchpoints-dirname.
MOVE: 'DIR_HOME' TO searchpoints-sp_name.
APPEND searchpoints.
* Get DB home
IF sy-dbsys(3) = 'INF'.
PERFORM write_db_home.
ENDIF.
* get name of directory with the error files
CALL 'C_SAPGPARAM' ID 'NAME' FIELD 'DIR_INSTALL'
ID 'VALUE' FIELD searchpoints-dirname.
MOVE: 'DIR_INSTALL' TO searchpoints-sp_name.
APPEND searchpoints.
* get name of directory with the error files
CALL 'C_SAPGPARAM' ID 'NAME' FIELD 'DIR_INSTANCE'
ID 'VALUE' FIELD searchpoints-dirname.
MOVE: 'DIR_INSTANCE' TO searchpoints-sp_name.
APPEND searchpoints.
* get name of directory with the error files
CALL 'C_SAPGPARAM' ID 'NAME' FIELD 'DIR_LIBRARY'
ID 'VALUE' FIELD searchpoints-dirname.
MOVE: 'DIR_LIBRARY' TO searchpoints-sp_name.
APPEND searchpoints.
* get name of directory with the error files
CALL 'C_SAPGPARAM' ID 'NAME' FIELD 'DIR_LOGGING'
ID 'VALUE' FIELD searchpoints-dirname.
MOVE: 'DIR_LOGGING' TO searchpoints-sp_name.
APPEND searchpoints.
* get name of directory with the files written by the memory inspector
CALL 'C_SAPGPARAM' ID 'NAME' FIELD 'DIR_MEMORY_INSPECTOR'
ID 'VALUE' FIELD searchpoints-dirname.
MOVE: 'DIR_MEMORY_INSPECTOR' TO searchpoints-sp_name.
APPEND searchpoints.
* Get DB home
IF sy-dbsys(3) = 'ORA'.
PERFORM write_db_home.
ENDIF.
*get name of directory with the error files
CALL 'C_SAPGPARAM' ID 'NAME' FIELD 'DIR_PAGING'
ID 'VALUE' FIELD searchpoints-dirname.
MOVE: 'DIR_PAGING' TO searchpoints-sp_name.
APPEND searchpoints.
*get name of directory with the error files
CALL 'C_SAPGPARAM' ID 'NAME' FIELD 'DIR_PUT'
ID 'VALUE' FIELD searchpoints-dirname.
MOVE: 'DIR_PUT' TO searchpoints-sp_name.
APPEND searchpoints.
* get name of directory with the error files
CALL 'C_SAPGPARAM' ID 'NAME' FIELD 'DIR_PERF'
ID 'VALUE' FIELD searchpoints-dirname.
MOVE: 'DIR_PERF' TO searchpoints-sp_name.
APPEND searchpoints.
CALL 'C_SAPGPARAM' ID 'NAME' FIELD 'DIR_PROFILE'
ID 'VALUE' FIELD searchpoints-dirname.
MOVE: 'DIR_PROFILE' TO searchpoints-sp_name.
APPEND searchpoints.
* get name of directory with the error files
CALL 'C_SAPGPARAM' ID 'NAME' FIELD 'DIR_PROTOKOLLS'
ID 'VALUE' FIELD searchpoints-dirname.
MOVE: 'DIR_PROTOKOLLS' TO searchpoints-sp_name.
APPEND searchpoints.
* get name of directory with the error files
CALL 'C_SAPGPARAM' ID 'NAME' FIELD 'DIR_REORG'
ID 'VALUE' FIELD searchpoints-dirname.
MOVE: 'DIR_REORG' TO searchpoints-sp_name.
APPEND searchpoints.
* get name of directory with the error files
CALL 'C_SAPGPARAM' ID 'NAME' FIELD 'DIR_ROLL'
ID 'VALUE' FIELD searchpoints-dirname.
MOVE: 'DIR_ROLL' TO searchpoints-sp_name.
APPEND searchpoints.
* get name of directory with the error files
CALL 'C_SAPGPARAM' ID 'NAME' FIELD 'DIR_RSYN'
ID 'VALUE' FIELD searchpoints-dirname.
MOVE: 'DIR_RSYN' TO searchpoints-sp_name.
APPEND searchpoints.
* calculate directory for saphostagent (no sapparam available...)
IF ( sy-opsys(3) = 'WIN' ) OR ( sy-opsys(3) = 'Win' ).
DATA: windir_path(64), programfiles_path(64).
* hoping that ProgramFiles is set in service user environment
CALL 'C_GETENV' ID 'NAME' FIELD 'ProgramFiles'
ID 'VALUE' FIELD programfiles_path.
IF programfiles_path IS INITIAL.
* %ProgramFiles% not available. guess from windir
CALL 'C_GETENV' ID 'NAME' FIELD 'windir'
ID 'VALUE' FIELD windir_path.
* e.g. S:\WINDOWS ==> S:\Program Files
CONCATENATE windir_path(3) 'Program Files' INTO programfiles_path.
ENDIF.
CONCATENATE programfiles_path '\SAP\hostctrl'
INTO searchpoints-dirname.
ELSE.
* on UNIX, the path is hard coded
searchpoints-dirname = '/usr/sap/hostctrl'.
ENDIF.
MOVE: 'DIR_SAPHOSTAGENT' TO searchpoints-sp_name.
APPEND searchpoints.
* get name of directory with the error files
CALL 'C_SAPGPARAM' ID 'NAME' FIELD 'DIR_SAPUSERS'
ID 'VALUE' FIELD searchpoints-dirname.
IF searchpoints-dirname = '.'.
IF sy-opsys = 'Windows NT'.
searchpoints-dirname = '.\'.
ELSE.
searchpoints-dirname = './'.
ENDIF.
ENDIF.
MOVE: 'DIR_SAPUSERS' TO searchpoints-sp_name.
APPEND searchpoints.
* get name of directory with the error files
CALL 'C_SAPGPARAM' ID 'NAME' FIELD 'DIR_SETUPS'
ID 'VALUE' FIELD searchpoints-dirname.
MOVE: 'DIR_SETUPS' TO searchpoints-sp_name.
APPEND searchpoints.
* get name of directory with the error files
CALL 'C_SAPGPARAM' ID 'NAME' FIELD 'DIR_SORTTMP'
ID 'VALUE' FIELD searchpoints-dirname.
MOVE: 'DIR_SORTTMP' TO searchpoints-sp_name.
APPEND searchpoints.
*get name of directory with the error files
CALL 'C_SAPGPARAM' ID 'NAME' FIELD 'DIR_SOURCE'
ID 'VALUE' FIELD searchpoints-dirname.
MOVE: 'DIR_SOURCE' TO searchpoints-sp_name.
APPEND searchpoints.
* get name of directory with the error files
CALL 'C_SAPGPARAM' ID 'NAME' FIELD 'DIR_TEMP'
ID 'VALUE' FIELD searchpoints-dirname.
MOVE: 'DIR_TEMP' TO searchpoints-sp_name.
APPEND searchpoints.
* get name of directory with the error files
CALL 'C_SAPGPARAM' ID 'NAME' FIELD 'DIR_TRANS'
ID 'VALUE' FIELD searchpoints-dirname.
MOVE: 'DIR_TRANS' TO searchpoints-sp_name.
APPEND searchpoints.
CALL 'C_SAPGPARAM' ID 'NAME' FIELD 'DIR_TRFILES'
ID 'VALUE' FIELD searchpoints-dirname.
MOVE: 'DIR_TRFILES' TO searchpoints-sp_name.
APPEND searchpoints.
* get name of directory with the error files
CALL 'C_SAPGPARAM' ID 'NAME' FIELD 'DIR_TRSUB'
ID 'VALUE' FIELD searchpoints-dirname.
MOVE: 'DIR_TRSUB' TO searchpoints-sp_name.
APPEND searchpoints.
* get the name of the current server.
CALL 'C_SAPGPARAM' ID 'NAME' FIELD 'rdisp/myname'
ID 'VALUE' FIELD searchpoints-dirname.
data: h_ind type i.
LOOP AT searchpoints.
h_ind = sy-tabix.
IF searchpoints-sp_name IS INITIAL.
DELETE searchpoints INDEX h_ind.
ENDIF.
ENDLOOP.
ENDFORM. -
How to store an image into MySQL db using BlazeDS and Hibernate?
Hi!
I am using Flash Builder 4.6, BlazeDS, and Hibernate. How to store a webcam snapshot into the MySql Database. I stored Form Items by using RemoteObject into the database. But I failed to store webcam snapshot. I captured that image on Panel component.I converted that image to ByteArray. Now I want to save that image into the database. Please help me in this regard.
thanks in advance.
Here the Code:
VisitorEntryForm.mxml
<?xml version="1.0" encoding="utf-8"?>
<mx:TitleWindow
xmlns:mx="http://www.adobe.com/2006/mxml"
xmlns:vo="com.visitor.vo.*"
width="600"
height="300"
defaultButton="{submitButton}"
showCloseButton="true"
creationComplete="creationCompleteHandler();"
close="PopUpManager.removePopUp(this);"
title="Visitor Entry Form" xmlns:text="flash.text.*">
<mx:RemoteObject id="saveService" destination="visitorService" result="handleSaveResult(event)" fault="handleFault(event)" showBusyCursor="true" />
<vo:Visitor id="visitor"
vType="{vTypeField.text}"
vPurpose="{vPurposeField.text}"
vName="{vNameField.text}"
vAddress="{vAddressField.text}"
cPerson="{cPersonField.text}"
cAddress="{cAddressField.text}"
/>
<mx:Script>
<![CDATA[
import mx.managers.PopUpManager;
import flash.media.Camera;
import com.visitor.vo.WebCam;
import com.visitor.vo.Base64;
import mx.core.UIComponent;
import mx.graphics.codec.JPEGEncoder;
import mx.controls.Alert;
import mx.containers.Canvas;
import mx.rpc.events.ResultEvent;
import mx.rpc.events.FaultEvent;
import mx.events.ValidationResultEvent;
import mx.validators.Validator;
[Bindable]
private var webCam: com.visitor.vo.WebCam;
[Bindable]
private var message:String;
[Bindable]
private var formIsValid:Boolean = false;
[Bindable]
public var formIsEmpty:Boolean;
private var focussedFormControl:DisplayObject;
private function handleSaveResult(ev:ResultEvent):void {
clearFormHandler();
validateForm(ev);
Alert.show("Visitor successfully created/updated.", "Information", Alert.OK, null, null, null, Alert.OK);
// Reload the list.
parentApplication.listConsultants.loaderService.getConsultants();
PopUpManager.removePopUp(this);
private function handleFault(ev:FaultEvent):void {
message = "Error: " + ev.fault.faultCode + " \n "
+ "Detail: " + ev.fault.faultDetail + " \n "
+ "Message: " + ev.fault.faultString;
public function saveVisitor():void {
saveService.addUpdateVisitor(visitor);
private function creationCompleteHandler():void {
init();
PopUpManager.centerPopUp(this);
resetFocus();
private function resetFocus():void {
focusManager.setFocus(vTypeField);
public function validateForm(event:Event):void {
focussedFormControl = event.target as DisplayObject;
formIsValid = true;
// Check if form is empty
formIsEmpty = (vTypeField.text == "" && vPurposeField.text == "" && vNameField.text == "" && vAddressField.text == "" && cPersonField.text == "" && cAddressField.text == "");
validate(vTypeValidator);
validate(vPurposeValidator);
validate(vNameValidator);
validate(vAddressValidator);
validate(cPersonValidator);
validate(cAddressValidator);
private function validate(validator:Validator):Boolean {
var validatorSource:DisplayObject = validator.source as DisplayObject;
var suppressEvents:Boolean = (validatorSource != focussedFormControl);
var event:ValidationResultEvent = validator.validate(null, suppressEvents);
var currentControlIsValid:Boolean = (event.type == ValidationResultEvent.VALID);
formIsValid = formIsValid && currentControlIsValid;
return currentControlIsValid;
private function clearFormHandler():void {
// Clear all input fields.
vTypeField.text = "";
vPurposeField.text = "";
vNameField.text = "";
vAddressField.text = "";
cPersonField.text = "";
cAddressField.text = "";
message = "";
// Clear validation error messages.
vTypeField.errorString = "";
vPurposeField.errorString = "";
vNameField.errorString = "";
vAddressField.errorString = "";
cPersonField.errorString = "";
cAddressField.errorString = "";
formIsEmpty = true;
formIsValid = false;
resetFocus();
private function init():void {
webCam = new WebCam(97,97);
var ref:UIComponent = new UIComponent();
preview.removeAllChildren();
preview.addChild(ref);
ref.addChild(webCam);
private function takeSnapshot():void {
imageViewer.visible = true;
imageViewer.width = preview.width;
imageViewer.height = preview.height;
var uiComponent : UIComponent = new UIComponent();
uiComponent.width = webCam.width;
uiComponent.height = webCam.height;
var photoData:Bitmap = webCam.getSnapshot();
var photoBitmap:BitmapData = photoData.bitmapData;
uiComponent.addChild(photoData);
imageViewer.removeAllChildren();
imageViewer.addChild(uiComponent);
private function uploadSnapshot():void
if (imageViewer.getChildren().length > 0)
var uic:UIComponent = imageViewer.getChildAt(0) as UIComponent;
var bitmap:Bitmap = uic.getChildAt(0) as Bitmap;
var jpgEncoder:JPEGEncoder = new JPEGEncoder(75);
var jpgBytes:ByteArray = jpgEncoder.encode(bitmap.bitmapData);
private function deleteSnapshot():void
imageViewer.removeAllChildren();
]]>
</mx:Script>
<mx:StringValidator id="vTypeValidator" source="{vTypeField}" property="text" minLength="2" required="true" />
<mx:StringValidator id="vPurposeValidator" source="{vPurposeField}" property="text" minLength="2" required="true" />
<mx:StringValidator id="vNameValidator" source="{vNameField}" property="text" minLength="2" required="true" />
<mx:StringValidator id="vAddressValidator" source="{vAddressField}" property="text" minLength="5" required="true" />
<mx:StringValidator id="cPersonValidator" source="{cPersonField}" property="text" minLength="2" required="true" />
<mx:StringValidator id="cAddressValidator" source="{cAddressField}" property="text" minLength="5" required="true" />
<mx:Grid width="575" height="211">
<mx:GridRow width="575" height="211">
<mx:GridItem width="301" height="235">
<mx:Form width="301" height="208">
<mx:FormItem label="Visitor's Type">
<mx:ComboBox id="vTypeField" text="{visitor.vType}" change="validateForm(event);" editable="true">
<mx:Array>
<mx:String></mx:String>
<mx:String>Contractor</mx:String>
<mx:String>Supplier</mx:String>
<mx:String>Transporter</mx:String>
<mx:String>Plant</mx:String>
<mx:String>Non-Plant</mx:String>
</mx:Array>
</mx:ComboBox>
</mx:FormItem>
<mx:FormItem label="Visit Purpose">
<mx:ComboBox id="vPurposeField" text="{visitor.vPurpose}" change="validateForm(event);" editable="true">
<mx:Array>
<mx:String></mx:String>
<mx:String>Official</mx:String>
<mx:String>Personal</mx:String>
</mx:Array>
</mx:ComboBox>
</mx:FormItem>
<mx:FormItem label="Visitor's Name">
<mx:TextInput id="vNameField" text="{visitor.vName}" change="validateForm(event);"/>
</mx:FormItem>
<mx:FormItem label="Address">
<mx:TextInput id="vAddressField" text="{visitor.vAddress}" change="validateForm(event);"/>
</mx:FormItem>
<mx:FormItem label="Contact Person">
<mx:TextInput id="cPersonField" text="{visitor.cPerson}" change="validateForm(event);"/>
</mx:FormItem>
<mx:FormItem label="Address">
<mx:TextInput id="cAddressField" text="{visitor.cAddress}" change="validateForm(event);"/>
</mx:FormItem>
</mx:Form>
</mx:GridItem>
<mx:GridItem width="264" height="193">
<mx:Grid width="241" height="206">
<mx:GridRow width="100%" height="100%">
<mx:GridItem width="100%" height="100%" horizontalAlign="center" verticalAlign="middle">
<mx:Panel width="100" height="132" title="Snap" id="preview" layout="absolute"/>
</mx:GridItem>
<mx:GridItem width="100%" height="100%" horizontalAlign="center" verticalAlign="middle">
<mx:Panel width="100" height="132" title="Preview" id="imageViewer" layout="absolute"/>
</mx:GridItem>
</mx:GridRow>
<mx:GridRow width="100%" height="27" >
<mx:GridItem width="100%" height="100%" horizontalAlign="center">
<mx:Button id="snapshot" x="2" width="106" height="27" label="Snap"
click="takeSnapshot();"/>
</mx:GridItem>
<mx:GridItem width="100%" height="100%" horizontalAlign="center">
<mx:Button id="deleteButton" x="1" width="106" height="27" label="Delete"
click="deleteSnapshot();"/>
</mx:GridItem>
</mx:GridRow>
</mx:Grid>
</mx:GridItem>
</mx:GridRow>
</mx:Grid>
<mx:ControlBar height="40" horizontalAlign="center">
<mx:Button label="Save Visitor" id="submitButton" enabled="{formIsValid}" click="saveVisitor();" />
<mx:Button label="Clear form" enabled="{!formIsEmpty}" click="clearFormHandler();" />
<mx:Button label="Cancel" click="PopUpManager.removePopUp(this);"/>
<mx:Label width="211" id="state"/>
</mx:ControlBar>
<mx:Text text="{message}" fontWeight="bold" width="300"/>
</mx:TitleWindow>
ListVisitors.mxml
<?xml version="1.0" encoding="utf-8"?>
<mx:Panel
xmlns:mx="http://www.adobe.com/2006/mxml"
xmlns:view="com.visitor.view.*"
width="100%"
height="100%"
title="Visitor Management System - Found {visitorRecords} visitors."
creationComplete="loadVisitors();">
<mx:RemoteObject id="loaderService" destination="visitorService" result="handleLoadResult(event)" fault="handleFault(event)" showBusyCursor="true" />
<mx:RemoteObject id="deleteService" destination="visitorService" result="handleDeleteResult(event)" fault="handleFault(event)" showBusyCursor="true" />
<mx:Script>
<![CDATA[
import com.visitor.vo.Visitor;
import mx.controls.Alert;
import mx.managers.PopUpManager;
import mx.containers.TitleWindow;
import mx.collections.ArrayCollection;
import mx.rpc.events.ResultEvent;
import mx.rpc.events.FaultEvent;
[Bindable]
private var message:String;
[Bindable]
private var visitors:ArrayCollection = new ArrayCollection();
[Bindable]
private var visitorRecords:int = 0;
public function loadVisitors():void {
loaderService.getVisitors();
private function deleteVisitor():void {
if(dataGrid.selectedItem != null) {
var selectedItem:Visitor = dataGrid.selectedItem as Visitor;
deleteService.deleteVisitor(selectedItem.visitorId);
private function createVisitor():void {
var titleWindow:VisitorEntryForm = VisitorEntryForm(PopUpManager.createPopUp(this, VisitorEntryForm, true));
titleWindow.setStyle("borderAlpha", 0.9);
titleWindow.formIsEmpty = true;
private function updateVisitor():void {
var titleWindow:VisitorEntryForm = VisitorEntryForm(PopUpManager.createPopUp(this, VisitorEntryForm, true));
titleWindow.setStyle("borderAlpha", 0.9);
titleWindow.visitor = dataGrid.selectedItem as Visitor;
titleWindow.formIsEmpty = false;
private function handleLoadResult(ev:ResultEvent):void {
visitors = ev.result as ArrayCollection;
visitorRecords = visitors.length;
private function handleDeleteResult(ev:ResultEvent):void {
Alert.show("The visitor has been deleted.", "Information", Alert.OK, null, null, null, Alert.OK);
loadVisitors();
private function handleFault(ev:FaultEvent):void {
message = "Error: "
+ ev.fault.faultCode + " - "
+ ev.fault.faultDetail + " - "
+ ev.fault.faultString;
]]>
</mx:Script>
<mx:VBox width="100%" height="100%">
<mx:Label text="{message}" fontWeight="bold" includeInLayout="false" />
<mx:DataGrid
id="dataGrid"
width="100%"
height="100%"
dataProvider="{visitors}"
doubleClickEnabled="true"
doubleClick="updateVisitor()" >
<mx:columns>
<mx:DataGridColumn dataField="visitorId" headerText="Visitor ID" width="100"/>
<mx:DataGridColumn dataField="vType" headerText="Visitor's Type" />
<mx:DataGridColumn dataField="vPurpose" headerText="Visit Purpose" />
<mx:DataGridColumn dataField="vName" headerText="Visitor's Name" />
<mx:DataGridColumn dataField="vAddress" headerText="Visitor's Address" />
<mx:DataGridColumn dataField="cPerson" headerText="Contact Person" />
<mx:DataGridColumn dataField="cAddress" headerText="Contact Address" />
<mx:DataGridColumn dataField="timeIn" headerText="Time-In" />
<mx:DataGridColumn dataField="timeOut" headerText="Time-Out" />
<mx:DataGridColumn dataField="vPhoto" headerText="Visitor's Photo" />
</mx:columns>
</mx:DataGrid>
<mx:ControlBar horizontalAlign="center">
<mx:Button label="Create Visitor" click="createVisitor()" toolTip="Create a new visitor and store it in the database." />
<mx:Button label="Update Visitor" click="updateVisitor()" enabled="{dataGrid.selectedItem}" toolTip="Update an existing database visitor." />
<mx:Button label="Delete Visitor" click="deleteVisitor()" enabled="{dataGrid.selectedItem}" toolTip="Delete the visitor from the database." />
<mx:Button label="Reload Data" click="loadVisitors()" toolTip="Reload the visitor list from the database." />
</mx:ControlBar>
</mx:VBox>
</mx:Panel>
Visitor.as
package com.visitor.vo
import mx.controls.Image;
import spark.primitives.BitmapImage;
[Bindable]
[RemoteClass(alias="com.visitor.Visitor")]
public class Visitor
public function Visitor()
public var visitorId:Number;
public var vType:String;
public var vPurpose:String;
public var vName:String;
public var vAddress:String;
public var cPerson:String;
public var cAddress:String;
public var timeIn:Date;
public var timeOut:Date;
public var vPhoto: Image;
Visitor.java
package com.visitor;
import java.sql.Blob;
import java.sql.Timestamp;
import javax.persistence.Basic;
import javax.persistence.Column;
import javax.persistence.Entity;
import javax.persistence.GeneratedValue;
import javax.persistence.GenerationType;
import javax.persistence.Id;
import javax.persistence.NamedQueries;
import javax.persistence.NamedQuery;
import javax.persistence.Table;
import org.hibernate.annotations.Index;
@Entity
@Table(name = "visitors")
@NamedQueries( {
@NamedQuery(name = "visitors.findAll", query = "from Visitor"),
@NamedQuery(name = "visitors.byId", query = "select v from Visitor v where v.visitorId= :visitorId") })
public class Visitor {
@Id
@GeneratedValue(strategy = GenerationType.AUTO)
@Column(name = "visitorId", nullable = false)
private Long visitorId;
@Basic
@Index(name = "vType_idx_1")
@Column(name = "vType", nullable = true, unique = false)
private String vType;
@Basic
@Column(name = "vPurpose", nullable = true, unique = false)
private String vPurpose;
@Basic
@Column(name = "vName", nullable = true, unique = false)
private String vName;
@Basic
@Column(name = "vAddress", nullable = true, unique = false)
private String vAddress;
@Basic
@Column(name = "cPerson", nullable = true, unique = false)
private String cPerson;
@Basic
@Column(name = "cAddress", nullable = true, unique = false)
private String cAddress;
@Basic
@Column(name = "timeIn", nullable = false, unique = false)
private Timestamp timeIn;
@Basic
@Column(name = "timeOut", nullable = true, unique = false)
private Timestamp timeOut;
@Basic
@Column(name = "vPhoto", nullable = true, unique = false)
private Blob vPhoto;
public Visitor() {
super();
public Long getVisitorId() {
return visitorId;
public void setVisitorId(Long visitorId) {
this.visitorId = visitorId;
public String getvType() {
return vType;
public void setvType(String vType) {
this.vType = vType;
public String getvPurpose() {
return vPurpose;
public void setvPurpose(String vPurpose) {
this.vPurpose = vPurpose;
public String getvName() {
return vName;
public void setvName(String vName) {
this.vName = vName;
public String getvAddress() {
return vAddress;
public void setvAddress(String vAddress) {
this.vAddress = vAddress;
public String getcPerson() {
return cPerson;
public void setcPerson(String cPerson) {
this.cPerson = cPerson;
public String getcAddress() {
return cAddress;
public void setcAddress(String cAddress) {
this.cAddress = cAddress;
public Timestamp getTimeIn() {
return timeIn;
public void setTimeIn(Timestamp timeIn) {
this.timeIn = timeIn;
public Timestamp getTimeOut() {
return timeOut;
public void setTimeOut(Timestamp timeOut) {
this.timeOut = timeOut;
public Blob getvPhoto() {
return vPhoto;
public void setvPhoto(Blob vPhoto) {
this.vPhoto = vPhoto;
VisitorService.java
package com.visitor;
import java.sql.Timestamp;
import java.util.Date;
import java.util.List;
import javax.persistence.EntityManager;
import javax.persistence.EntityManagerFactory;
import javax.persistence.EntityTransaction;
import javax.persistence.Persistence;
import javax.persistence.Query;
import org.apache.log4j.Logger;
public class VisitorService {
private static final String PERSISTENCE_UNIT = "visitor_db";
private static Logger logger = Logger.getLogger(VisitorService.class);
public VisitorService() {
super();
public List<Visitor> getvisitors() {
logger.debug("** getVisitors called...");
EntityManagerFactory entityManagerFactory = Persistence
.createEntityManagerFactory(PERSISTENCE_UNIT);
EntityManager em = entityManagerFactory.createEntityManager();
Query findAllQuery = em.createNamedQuery("visitors.findAll");
List<Visitor> visitors = findAllQuery.getResultList();
if (visitors != null)
logger.debug("** Found " + visitors.size() + " records:");
return visitors;
public void addUpdateVisitor(Visitor visitor) throws Exception {
logger.debug("** addUpdateVisitor called...");
EntityManagerFactory emf = Persistence
.createEntityManagerFactory(PERSISTENCE_UNIT);
EntityManager em = emf.createEntityManager();
// When passing Boolean and Number values from the Flash client to a
// Java object, Java interprets null values as the default values for
// primitive types; for example, 0 for double, float, long, int, short,
// byte.
if (visitor.getVisitorId() == null || visitor.getVisitorId() == 0) {
// New consultant is created
visitor.setVisitorId(null);
visitor.setTimeIn(new Timestamp(new Date().getTime()));
} else {
visitor.setTimeOut(new Timestamp(new Date().getTime()));
// Existing consultant is updated - do nothing.
EntityTransaction tx = em.getTransaction();
tx.begin();
try {
em.merge(visitor);
tx.commit();
} catch (Exception e) {
logger.error("** Error: " + e.getMessage());
tx.rollback();
throw new Exception(e.getMessage());
} finally {
logger.info("** Closing Entity Manager.");
em.close();
public void deleteVisitor(Long visitorId) {
logger.debug("** deleteVisitor called...");
EntityManagerFactory emf = Persistence
.createEntityManagerFactory(PERSISTENCE_UNIT);
EntityManager em = emf.createEntityManager();
Query q = em.createNamedQuery("visitors.byId");
q.setParameter("visitorId", visitorId);
Visitor visitor = (Visitor) q.getSingleResult();
if (visitor != null) {
EntityTransaction tx = em.getTransaction();
tx.begin();
try {
em.remove(visitor);
tx.commit();
} catch (Exception e) {
logger.error("** Error: " + e.getMessage());
tx.rollback();
} finally {
logger.info("** Closing Entity Manager.");
em.close();
remoting-config.xml
<?xml version="1.0" encoding="UTF-8"?>
<service id="remoting-service" class="flex.messaging.services.RemotingService">
<adapters>
<adapter-definition id="java-object"
class="flex.messaging.services.remoting.adapters.JavaAdapter"
default="true" />
</adapters>
<default-channels>
<channel ref="my-amf" />
</default-channels>
<!-- ADC Demo application -->
<destination id="visitorService">
<properties>
<source>com.visitor.VisitorService</source>
</properties>
</destination>
</service>Hi!
I am using Flash Builder 4.6, BlazeDS, and Hibernate. How to store a webcam snapshot into the MySql Database. I stored Form Items by using RemoteObject into the database. But I failed to store webcam snapshot. I captured that image on Panel component.I converted that image to ByteArray. Now I want to save that image into the database. Please help me in this regard.
thanks in advance.
Here the Code:
VisitorEntryForm.mxml
<?xml version="1.0" encoding="utf-8"?>
<mx:TitleWindow
xmlns:mx="http://www.adobe.com/2006/mxml"
xmlns:vo="com.visitor.vo.*"
width="600"
height="300"
defaultButton="{submitButton}"
showCloseButton="true"
creationComplete="creationCompleteHandler();"
close="PopUpManager.removePopUp(this);"
title="Visitor Entry Form" xmlns:text="flash.text.*">
<mx:RemoteObject id="saveService" destination="visitorService" result="handleSaveResult(event)" fault="handleFault(event)" showBusyCursor="true" />
<vo:Visitor id="visitor"
vType="{vTypeField.text}"
vPurpose="{vPurposeField.text}"
vName="{vNameField.text}"
vAddress="{vAddressField.text}"
cPerson="{cPersonField.text}"
cAddress="{cAddressField.text}"
/>
<mx:Script>
<![CDATA[
import mx.managers.PopUpManager;
import flash.media.Camera;
import com.visitor.vo.WebCam;
import com.visitor.vo.Base64;
import mx.core.UIComponent;
import mx.graphics.codec.JPEGEncoder;
import mx.controls.Alert;
import mx.containers.Canvas;
import mx.rpc.events.ResultEvent;
import mx.rpc.events.FaultEvent;
import mx.events.ValidationResultEvent;
import mx.validators.Validator;
[Bindable]
private var webCam: com.visitor.vo.WebCam;
[Bindable]
private var message:String;
[Bindable]
private var formIsValid:Boolean = false;
[Bindable]
public var formIsEmpty:Boolean;
private var focussedFormControl:DisplayObject;
private function handleSaveResult(ev:ResultEvent):void {
clearFormHandler();
validateForm(ev);
Alert.show("Visitor successfully created/updated.", "Information", Alert.OK, null, null, null, Alert.OK);
// Reload the list.
parentApplication.listConsultants.loaderService.getConsultants();
PopUpManager.removePopUp(this);
private function handleFault(ev:FaultEvent):void {
message = "Error: " + ev.fault.faultCode + " \n "
+ "Detail: " + ev.fault.faultDetail + " \n "
+ "Message: " + ev.fault.faultString;
public function saveVisitor():void {
saveService.addUpdateVisitor(visitor);
private function creationCompleteHandler():void {
init();
PopUpManager.centerPopUp(this);
resetFocus();
private function resetFocus():void {
focusManager.setFocus(vTypeField);
public function validateForm(event:Event):void {
focussedFormControl = event.target as DisplayObject;
formIsValid = true;
// Check if form is empty
formIsEmpty = (vTypeField.text == "" && vPurposeField.text == "" && vNameField.text == "" && vAddressField.text == "" && cPersonField.text == "" && cAddressField.text == "");
validate(vTypeValidator);
validate(vPurposeValidator);
validate(vNameValidator);
validate(vAddressValidator);
validate(cPersonValidator);
validate(cAddressValidator);
private function validate(validator:Validator):Boolean {
var validatorSource:DisplayObject = validator.source as DisplayObject;
var suppressEvents:Boolean = (validatorSource != focussedFormControl);
var event:ValidationResultEvent = validator.validate(null, suppressEvents);
var currentControlIsValid:Boolean = (event.type == ValidationResultEvent.VALID);
formIsValid = formIsValid && currentControlIsValid;
return currentControlIsValid;
private function clearFormHandler():void {
// Clear all input fields.
vTypeField.text = "";
vPurposeField.text = "";
vNameField.text = "";
vAddressField.text = "";
cPersonField.text = "";
cAddressField.text = "";
message = "";
// Clear validation error messages.
vTypeField.errorString = "";
vPurposeField.errorString = "";
vNameField.errorString = "";
vAddressField.errorString = "";
cPersonField.errorString = "";
cAddressField.errorString = "";
formIsEmpty = true;
formIsValid = false;
resetFocus();
private function init():void {
webCam = new WebCam(97,97);
var ref:UIComponent = new UIComponent();
preview.removeAllChildren();
preview.addChild(ref);
ref.addChild(webCam);
private function takeSnapshot():void {
imageViewer.visible = true;
imageViewer.width = preview.width;
imageViewer.height = preview.height;
var uiComponent : UIComponent = new UIComponent();
uiComponent.width = webCam.width;
uiComponent.height = webCam.height;
var photoData:Bitmap = webCam.getSnapshot();
var photoBitmap:BitmapData = photoData.bitmapData;
uiComponent.addChild(photoData);
imageViewer.removeAllChildren();
imageViewer.addChild(uiComponent);
private function uploadSnapshot():void
if (imageViewer.getChildren().length > 0)
var uic:UIComponent = imageViewer.getChildAt(0) as UIComponent;
var bitmap:Bitmap = uic.getChildAt(0) as Bitmap;
var jpgEncoder:JPEGEncoder = new JPEGEncoder(75);
var jpgBytes:ByteArray = jpgEncoder.encode(bitmap.bitmapData);
private function deleteSnapshot():void
imageViewer.removeAllChildren();
]]>
</mx:Script>
<mx:StringValidator id="vTypeValidator" source="{vTypeField}" property="text" minLength="2" required="true" />
<mx:StringValidator id="vPurposeValidator" source="{vPurposeField}" property="text" minLength="2" required="true" />
<mx:StringValidator id="vNameValidator" source="{vNameField}" property="text" minLength="2" required="true" />
<mx:StringValidator id="vAddressValidator" source="{vAddressField}" property="text" minLength="5" required="true" />
<mx:StringValidator id="cPersonValidator" source="{cPersonField}" property="text" minLength="2" required="true" />
<mx:StringValidator id="cAddressValidator" source="{cAddressField}" property="text" minLength="5" required="true" />
<mx:Grid width="575" height="211">
<mx:GridRow width="575" height="211">
<mx:GridItem width="301" height="235">
<mx:Form width="301" height="208">
<mx:FormItem label="Visitor's Type">
<mx:ComboBox id="vTypeField" text="{visitor.vType}" change="validateForm(event);" editable="true">
<mx:Array>
<mx:String></mx:String>
<mx:String>Contractor</mx:String>
<mx:String>Supplier</mx:String>
<mx:String>Transporter</mx:String>
<mx:String>Plant</mx:String>
<mx:String>Non-Plant</mx:String>
</mx:Array>
</mx:ComboBox>
</mx:FormItem>
<mx:FormItem label="Visit Purpose">
<mx:ComboBox id="vPurposeField" text="{visitor.vPurpose}" change="validateForm(event);" editable="true">
<mx:Array>
<mx:String></mx:String>
<mx:String>Official</mx:String>
<mx:String>Personal</mx:String>
</mx:Array>
</mx:ComboBox>
</mx:FormItem>
<mx:FormItem label="Visitor's Name">
<mx:TextInput id="vNameField" text="{visitor.vName}" change="validateForm(event);"/>
</mx:FormItem>
<mx:FormItem label="Address">
<mx:TextInput id="vAddressField" text="{visitor.vAddress}" change="validateForm(event);"/>
</mx:FormItem>
<mx:FormItem label="Contact Person">
<mx:TextInput id="cPersonField" text="{visitor.cPerson}" change="validateForm(event);"/>
</mx:FormItem>
<mx:FormItem label="Address">
<mx:TextInput id="cAddressField" text="{visitor.cAddress}" change="validateForm(event);"/>
</mx:FormItem>
</mx:Form>
</mx:GridItem>
<mx:GridItem width="264" height="193">
<mx:Grid width="241" height="206">
<mx:GridRow width="100%" height="100%">
<mx:GridItem width="100%" height="100%" horizontalAlign="center" verticalAlign="middle">
<mx:Panel width="100" height="132" title="Snap" id="preview" layout="absolute"/>
</mx:GridItem>
<mx:GridItem width="100%" height="100%" horizontalAlign="center" verticalAlign="middle">
<mx:Panel width="100" height="132" title="Preview" id="imageViewer" layout="absolute"/>
</mx:GridItem>
</mx:GridRow>
<mx:GridRow width="100%" height="27" >
<mx:GridItem width="100%" height="100%" horizontalAlign="center">
<mx:Button id="snapshot" x="2" width="106" height="27" label="Snap"
click="takeSnapshot();"/>
</mx:GridItem>
<mx:GridItem width="100%" height="100%" horizontalAlign="center">
<mx:Button id="deleteButton" x="1" width="106" height="27" label="Delete"
click="deleteSnapshot();"/>
</mx:GridItem>
</mx:GridRow>
</mx:Grid>
</mx:GridItem>
</mx:GridRow>
</mx:Grid>
<mx:ControlBar height="40" horizontalAlign="center">
<mx:Button label="Save Visitor" id="submitButton" enabled="{formIsValid}" click="saveVisitor();" />
<mx:Button label="Clear form" enabled="{!formIsEmpty}" click="clearFormHandler();" />
<mx:Button label="Cancel" click="PopUpManager.removePopUp(this);"/>
<mx:Label width="211" id="state"/>
</mx:ControlBar>
<mx:Text text="{message}" fontWeight="bold" width="300"/>
</mx:TitleWindow>
ListVisitors.mxml
<?xml version="1.0" encoding="utf-8"?>
<mx:Panel
xmlns:mx="http://www.adobe.com/2006/mxml"
xmlns:view="com.visitor.view.*"
width="100%"
height="100%"
title="Visitor Management System - Found {visitorRecords} visitors."
creationComplete="loadVisitors();">
<mx:RemoteObject id="loaderService" destination="visitorService" result="handleLoadResult(event)" fault="handleFault(event)" showBusyCursor="true" />
<mx:RemoteObject id="deleteService" destination="visitorService" result="handleDeleteResult(event)" fault="handleFault(event)" showBusyCursor="true" />
<mx:Script>
<![CDATA[
import com.visitor.vo.Visitor;
import mx.controls.Alert;
import mx.managers.PopUpManager;
import mx.containers.TitleWindow;
import mx.collections.ArrayCollection;
import mx.rpc.events.ResultEvent;
import mx.rpc.events.FaultEvent;
[Bindable]
private var message:String;
[Bindable]
private var visitors:ArrayCollection = new ArrayCollection();
[Bindable]
private var visitorRecords:int = 0;
public function loadVisitors():void {
loaderService.getVisitors();
private function deleteVisitor():void {
if(dataGrid.selectedItem != null) {
var selectedItem:Visitor = dataGrid.selectedItem as Visitor;
deleteService.deleteVisitor(selectedItem.visitorId);
private function createVisitor():void {
var titleWindow:VisitorEntryForm = VisitorEntryForm(PopUpManager.createPopUp(this, VisitorEntryForm, true));
titleWindow.setStyle("borderAlpha", 0.9);
titleWindow.formIsEmpty = true;
private function updateVisitor():void {
var titleWindow:VisitorEntryForm = VisitorEntryForm(PopUpManager.createPopUp(this, VisitorEntryForm, true));
titleWindow.setStyle("borderAlpha", 0.9);
titleWindow.visitor = dataGrid.selectedItem as Visitor;
titleWindow.formIsEmpty = false;
private function handleLoadResult(ev:ResultEvent):void {
visitors = ev.result as ArrayCollection;
visitorRecords = visitors.length;
private function handleDeleteResult(ev:ResultEvent):void {
Alert.show("The visitor has been deleted.", "Information", Alert.OK, null, null, null, Alert.OK);
loadVisitors();
private function handleFault(ev:FaultEvent):void {
message = "Error: "
+ ev.fault.faultCode + " - "
+ ev.fault.faultDetail + " - "
+ ev.fault.faultString;
]]>
</mx:Script>
<mx:VBox width="100%" height="100%">
<mx:Label text="{message}" fontWeight="bold" includeInLayout="false" />
<mx:DataGrid
id="dataGrid"
width="100%"
height="100%"
dataProvider="{visitors}"
doubleClickEnabled="true"
doubleClick="updateVisitor()" >
<mx:columns>
<mx:DataGridColumn dataField="visitorId" headerText="Visitor ID" width="100"/>
<mx:DataGridColumn dataField="vType" headerText="Visitor's Type" />
<mx:DataGridColumn dataField="vPurpose" headerText="Visit Purpose" />
<mx:DataGridColumn dataField="vName" headerText="Visitor's Name" />
<mx:DataGridColumn dataField="vAddress" headerText="Visitor's Address" />
<mx:DataGridColumn dataField="cPerson" headerText="Contact Person" />
<mx:DataGridColumn dataField="cAddress" headerText="Contact Address" />
<mx:DataGridColumn dataField="timeIn" headerText="Time-In" />
<mx:DataGridColumn dataField="timeOut" headerText="Time-Out" />
<mx:DataGridColumn dataField="vPhoto" headerText="Visitor's Photo" />
</mx:columns>
</mx:DataGrid>
<mx:ControlBar horizontalAlign="center">
<mx:Button label="Create Visitor" click="createVisitor()" toolTip="Create a new visitor and store it in the database." />
<mx:Button label="Update Visitor" click="updateVisitor()" enabled="{dataGrid.selectedItem}" toolTip="Update an existing database visitor." />
<mx:Button label="Delete Visitor" click="deleteVisitor()" enabled="{dataGrid.selectedItem}" toolTip="Delete the visitor from the database." />
<mx:Button label="Reload Data" click="loadVisitors()" toolTip="Reload the visitor list from the database." />
</mx:ControlBar>
</mx:VBox>
</mx:Panel>
Visitor.as
package com.visitor.vo
import mx.controls.Image;
import spark.primitives.BitmapImage;
[Bindable]
[RemoteClass(alias="com.visitor.Visitor")]
public class Visitor
public function Visitor()
public var visitorId:Number;
public var vType:String;
public var vPurpose:String;
public var vName:String;
public var vAddress:String;
public var cPerson:String;
public var cAddress:String;
public var timeIn:Date;
public var timeOut:Date;
public var vPhoto: Image;
Visitor.java
package com.visitor;
import java.sql.Blob;
import java.sql.Timestamp;
import javax.persistence.Basic;
import javax.persistence.Column;
import javax.persistence.Entity;
import javax.persistence.GeneratedValue;
import javax.persistence.GenerationType;
import javax.persistence.Id;
import javax.persistence.NamedQueries;
import javax.persistence.NamedQuery;
import javax.persistence.Table;
import org.hibernate.annotations.Index;
@Entity
@Table(name = "visitors")
@NamedQueries( {
@NamedQuery(name = "visitors.findAll", query = "from Visitor"),
@NamedQuery(name = "visitors.byId", query = "select v from Visitor v where v.visitorId= :visitorId") })
public class Visitor {
@Id
@GeneratedValue(strategy = GenerationType.AUTO)
@Column(name = "visitorId", nullable = false)
private Long visitorId;
@Basic
@Index(name = "vType_idx_1")
@Column(name = "vType", nullable = true, unique = false)
private String vType;
@Basic
@Column(name = "vPurpose", nullable = true, unique = false)
private String vPurpose;
@Basic
@Column(name = "vName", nullable = true, unique = false)
private String vName;
@Basic
@Column(name = "vAddress", nullable = true, unique = false)
private String vAddress;
@Basic
@Column(name = "cPerson", nullable = true, unique = false)
private String cPerson;
@Basic
@Column(name = "cAddress", nullable = true, unique = false)
private String cAddress;
@Basic
@Column(name = "timeIn", nullable = false, unique = false)
private Timestamp timeIn;
@Basic
@Column(name = "timeOut", nullable = true, unique = false)
private Timestamp timeOut;
@Basic
@Column(name = "vPhoto", nullable = true, unique = false)
private Blob vPhoto;
public Visitor() {
super();
public Long getVisitorId() {
return visitorId;
public void setVisitorId(Long visitorId) {
this.visitorId = visitorId;
public String getvType() {
return vType;
public void setvType(String vType) {
this.vType = vType;
public String getvPurpose() {
return vPurpose;
public void setvPurpose(String vPurpose) {
this.vPurpose = vPurpose;
public String getvName() {
return vName;
public void setvName(String vName) {
this.vName = vName;
public String getvAddress() {
return vAddress;
public void setvAddress(String vAddress) {
this.vAddress = vAddress;
public String getcPerson() {
return cPerson;
public void setcPerson(String cPerson) {
this.cPerson = cPerson;
public String getcAddress() {
return cAddress;
public void setcAddress(String cAddress) {
this.cAddress = cAddress;
public Timestamp getTimeIn() {
return timeIn;
public void setTimeIn(Timestamp timeIn) {
this.timeIn = timeIn;
public Timestamp getTimeOut() {
return timeOut;
public void setTimeOut(Timestamp timeOut) {
this.timeOut = timeOut;
public Blob getvPhoto() {
return vPhoto;
public void setvPhoto(Blob vPhoto) {
this.vPhoto = vPhoto;
VisitorService.java
package com.visitor;
import java.sql.Timestamp;
import java.util.Date;
import java.util.List;
import javax.persistence.EntityManager;
import javax.persistence.EntityManagerFactory;
import javax.persistence.EntityTransaction;
import javax.persistence.Persistence;
import javax.persistence.Query;
import org.apache.log4j.Logger;
public class VisitorService {
private static final String PERSISTENCE_UNIT = "visitor_db";
private static Logger logger = Logger.getLogger(VisitorService.class);
public VisitorService() {
super();
public List<Visitor> getvisitors() {
logger.debug("** getVisitors called...");
EntityManagerFactory entityManagerFactory = Persistence
.createEntityManagerFactory(PERSISTENCE_UNIT);
EntityManager em = entityManagerFactory.createEntityManager();
Query findAllQuery = em.createNamedQuery("visitors.findAll");
List<Visitor> visitors = findAllQuery.getResultList();
if (visitors != null)
logger.debug("** Found " + visitors.size() + " records:");
return visitors;
public void addUpdateVisitor(Visitor visitor) throws Exception {
logger.debug("** addUpdateVisitor called...");
EntityManagerFactory emf = Persistence
.createEntityManagerFactory(PERSISTENCE_UNIT);
EntityManager em = emf.createEntityManager();
// When passing Boolean and Number values from the Flash client to a
// Java object, Java interprets null values as the default values for
// primitive types; for example, 0 for double, float, long, int, short,
// byte.
if (visitor.getVisitorId() == null || visitor.getVisitorId() == 0) {
// New consultant is created
visitor.setVisitorId(null);
visitor.setTimeIn(new Timestamp(new Date().getTime()));
} else {
visitor.setTimeOut(new Timestamp(new Date().getTime()));
// Existing consultant is updated - do nothing.
EntityTransaction tx = em.getTransaction();
tx.begin();
try {
em.merge(visitor);
tx.commit();
} catch (Exception e) {
logger.error("** Error: " + e.getMessage());
tx.rollback();
throw new Exception(e.getMessage());
} finally {
logger.info("** Closing Entity Manager.");
em.close();
public void deleteVisitor(Long visitorId) {
logger.debug("** deleteVisitor called...");
EntityManagerFactory emf = Persistence
.createEntityManagerFactory(PERSISTENCE_UNIT);
EntityManager em = emf.createEntityManager();
Query q = em.createNamedQuery("visitors.byId");
q.setParameter("visitorId", visitorId);
Visitor visitor = (Visitor) q.getSingleResult();
if (visitor != null) {
EntityTransaction tx = em.getTransaction();
tx.begin();
try {
em.remove(visitor);
tx.commit();
} catch (Exception e) {
logger.error("** Error: " + e.getMessage());
tx.rollback();
} finally {
logger.info("** Closing Entity Manager.");
em.close();
remoting-config.xml
<?xml version="1.0" encoding="UTF-8"?>
<service id="remoting-service" class="flex.messaging.services.RemotingService">
<adapters>
<adapter-definition id="java-object"
class="flex.messaging.services.remoting.adapters.JavaAdapter"
default="true" />
</adapters>
<default-channels>
<channel ref="my-amf" />
</default-channels>
<!-- ADC Demo application -->
<destination id="visitorService">
<properties>
<source>com.visitor.VisitorService</source>
</properties>
</destination>
</service> -
When playing games on Facebook, why do I keep getting requests to store information on my computer?When playing games on Facebook, why do I keep getting requests to store information on my computer?
Welcome to the forum.
Exactly what program is throwing that request message?
Does that message list any details, such as WHAT will be written/saved to your computer?
As ATR mentions, I am not sure how PrE figures into the mix. I would anticipate that your message is coming from FaceBook, or from the OS, or from your anti-virus/anti-malware program.
Regardless, be VERY wary of any program, or Web site, that wants to write to your computer, unless you have delibertly invoked something that you DO want to do so.
Good luck,
Hunt -
I bought a faik programme how can I inform other people and get my money back
I bought a faik programme from Apple Store.How can I get my money back and how can I inform other people to get out from this trap.Although I wrote comments on the application ,I could not see anything on the application comment forum.Application is also promising 5 free movie if you rate it high !!!
This is a user-to-user support forum. For refund requests contact the iTunes Store support staff through the report a problem links in your account history, or via Contact Support.
tt2 -
How to get information about limitation Internal Memory on device
hallo ..
have some question here, so please some person able to answer my questions
1. How to get Information about limitation internal memory on device
2. is possible to improve internal memory on Blackberry ( move apps on external memory )
3. any tools to get internal memory activity ?
thanks for this people who joins here, hope we can share more information about blackberry ..In addition...
There are three types of potential memory on a BB: 1) Application Memory, 2) Device Memory, and 3) Media/SD Card Memory.
Application Memory -- This is the most crucial; it is the protected (not user accessible), dedicated, and fixed (in size) space that is available as the destination for the installation of applications (plus some application storage, overhead and such). You cannot touch AppMemory. You cannot improve the maximum AppMemory that your BB has. It is what it is. Applications can only install here...there is no option.
Device Memory -- This is space on your BB that you can touch to store files, pictures, media, etc. Typically, it is not terribly large, but it is available to you.
SD/Media Card Memory-- This is what it says...your SD card, for you to store files, media, pictures, etc. It can be as large as your BB OS can support...see this KB:
KB05461MicroSD card sizes supported by the BlackBerry device software
On some devices/OS levels, you can only see "File Free" (Options > Status), which I think is equivalent to AppMemory. On other devices, you can see all three memory usage levels (Options > Memory). Here are some guidelines to use:
KB02843What is the Low Memory Manager feature on the BlackBerry smartphone
KB14320How to maximize free space and battery power on the BlackBerry smartphone
KB14213Call logs, SMS text messages, and email messages are deleted from the BlackBerry smartphone
Lastly, it is always important to properly close applications when you are done with them. Using the Back or the Red key will not do this -- those leave it to the app to decide what to do...and some will leave themselves resident in memory, consuming resources on your BB, slowing the overall performance. Rather, to close an app, press and select "Close" or "Exit"...that will force the application to be closed, freeing up for your new use the resources it was consuming. Some apps will always remain running (typically -- BBMessenger, Browser, Homescreen, Phone, and Messages)...but, you should still close them properly - especially the Browser...if it is left on an active web page, it will not only consume extra resources but battery power as well.
Further, anytime random strange behavior or sluggishness creeps in, the first thing to do is a battery pop reboot. With power ON, remove the back cover and pull out the battery. Wait about a minute then replace the battery and cover. Power up and wait patiently through the long reboot -- ~5 minutes. See if things have returned to good operation. Like all computing devices, BB's suffer from memory leaks and such...with a hard reboot being the best cure. Some have taken to doing this on a regular basis as a preventive measure...some as frequently as once per day. Others have obtained the QuickPull app to automate a simulated Batt-Pull.
Good luck!
Occam's Razor nearly always applies when troubleshooting technology issues!
If anyone has been helpful to you, please show your appreciation by clicking the button inside of their post. Please click here and read, along with the threads to which it links, for helpful information to guide you as you proceed. I always recommend that you treat your BlackBerry like any other computing device, including using a regular backup schedule...click here for an article with instructions.
Join our BBM Channels
BSCF General Channel
PIN: C0001B7B4 Display/Scan Bar Code
Knowledge Base Updates
PIN: C0005A9AA Display/Scan Bar Code -
Chat App: how to store the user IP in database when they login.
hello,
i am working on chat application. first i made a login GUI form. after login when we run the Chat program, it ask the ip address of the server to whom it want to connect. and if u enter the ip address, it will connect to the server and chat will begin, thats working perfect.
but i want to show the list of users who r logged on and when i simply click on the user name, chat should begin.
i have the logic that when any user log in, then its IP address will be stored in the database. this ip address will shown to the online users.
but i dont know how to store the user information in database when they log in. can any body suggest me wht lines of code i should use.
thanks.palakk wrote:
i have the logic that when any user log in, then its IP address will be stored in the database. Bad approach. That will only work if this chat is only intended for use on a LAN. If it's used on the internet, then your users' IP addresses will almost always be either a) those of their routers, or b) private IP addresses, and in both cases, multiple users can have the same IP address.
this ip address will shown to the online users. Why would you want to do that? I want to chat with "Bill", not with "1.2.3.4".
but i dont know how to store the user information in database when they log in.Do the same thing that you're currently doing to store the IP address, but with the other information you want to store.
can any body suggest me wht lines of code i should use. This is not a code writing service. -
Hello, sorry for posting in this section but i dont konw where to ask about this topic. Looking in the different app stores i saw there are some apps that aren´t avaible in some countries. For example in Costa Rica app store miss some apps that are avaible in other countries such as USA, El Salvador.
So my question is why this situation happens and if this apps have a chance to be added to my local app store in the future. Thanks sorry for troublingI don't believe that the app will know anything about the App Store, when it was bought, etc. But if you're looking for a unique identifier, there is a uniqueIdentifier property in UIDevice. That is guaranteed to be unique, and works well as a key in a DB to store information about when the client last downloaded data, etc. It's also rather likely that this will be how you address phones through the coming push service.
-
How to store images in database
Can anyone help me with storing images in database, problem with me is that i m designing a site in which u need to display product information and administrator can add and delete products. now how can i make that administrator can add a image to database, Can u tell me that can image itself can be stored in a database or just the path of it can be stored in a database.
Waiting for quick reply,
thankscan u plss tell me how to store the path of the image in database , do we just have to mention it as varchar field and write the path thats it or do we have to do anything else . and pls also tellme when do we have to set connections ? only at the time to retrieving the images since we are not uploading the image sin DB just mentioning their path . pls reply ASAP
Maybe you are looking for
-
When you CAN'T buy an album at a time...?
If there is no BUY tab for an album in iTunes, and instead a VIEW tab only-the entire album cannot be bought at once? You havce to click & bill & pay each song individually? Really??
-
HT5887 Airdrop between iMac Maveriks and iPad mini 1. doesn't work
How do I have to setup iMac Maveriks and iPad mini 1if they doesn't see them...?
-
BAPI to create Steel Surch Debit (From VA01 Transaction)
Hi, I need a bapi to create steel surch debit,if we give order type zdr1 in va01 it will create a steel surch debit memo,I tried with BAPI 1.BAPI_SALESDOCU_CREATEFROMDATA1 2.BAPI_SALESDOCU_CREATEFROMDATA2 3.BAPI_SALESDOCU_CREATEFROMDATA 1st and 2nd
-
Dear experts In EHS, we copy FMs and change the configuration to point to the copied FM for modifications. In this case, what happens during an upgrade? How should such a situation be handled. Thanks Raj
-
My position in OVI map not showing my correct posi...
I installed new version of OVI maps today. when I clicked on "my position" , it is not not showing my position correctly, why it is so? anybody has any experience?