Organization Management - Function module
Hi,
I am looking for function module to update the Sales organization data in Business partner transaction for the role Sold-to-party.
In BP transaction, for a business partner in role sold-to-party, we assign sales organization. I would like to know function module which could be used to assign/ change the Sales Org. assigned to a business partner.
Helpful answers would be rewarded!
Jash.
Hi Doshi,
Check this FM : CRM_EMPLOYEE_GETORGUNIT. I am sure you should be able to read the organizational unit assigned to BP, but I am not sure whether you can update.
<b>Reward if helps</b>,
Regards,
Paul Kondaveeti
Similar Messages
-
ABAP-HR, Organization managemnt function module
Hi friends,
In ABAP-HR, i want all function modules we use regularly or hardly.
Thanks&Regards,
Shiva PrasadCertain function modules which work with PA infotypes are HR_READ_INFTY and HR_INFOTYPE_OPERATION.
Function modules which work with PP infotypes you can find by selecting using
RH_READ_INFTY_*
Some function groups used in HR are given below.
RPAI HR: Analysis from Infotypes
RPBS HR Error Processing
HRGL Read leave data
HRTIM00WORK-SCHED-CONVERT Replacement Modules for Func. Group RPTM
RPTM H
HRPAY99_OC New off-cycle functions
HRTIM00ACTUALTIMES Calculation of Actual Personnel Times
PA03 HR: Read personnel control record (PA03)
CAPP Time Sheet: Approval
APPL Business Object Applicant
VAP1 Concerns Applicant
HRP3 Module for feature tree maintenance
HRXSS_CAT_WEBDYNP Web Dynpro: RFC
RPAT Data transfer and interfaces
RHOV HR-CA Utilities for Vacancies
PAPL HR applicant data workflow
RPAP_WORDPROCESSOR Interface Between PA-RC and MS Word
RPAP_DATA_MINING Data Collection PA-RC Letters
HRCM Compensation Management
RHBY_2 Integration Switches
HRTC HR-CA: Account Assignment Block/Check
PARA Annual salary functionality (ANSAL)
RPCA Function Modules for CATT Procedures
PTWS HR-TIM: Personal Work Schedule
PDSU Connection to SAP Structural Graphics
Regards,
Aravind -
Address management function module
Hi,
I am using a standard BAPI, BAPI_SALESORDER_CREATEFROMDAT2. I extended two fileds in BAPIPARNR. And iam calling the standard BAPI and if sales order is created, then i need to update those fileds. Fileds are SORT2 in ADRC and AD_SMTPADR in ADC6. Is there any function module i can call to update the these tables using the customer number.looks like no function module ->
You can write simple select query...
get the sales order number -> do compare with vbpa table -> vbpa has adrnr -> do compare with adrc -adrnr -> update the address ..
once you update the adrc and it will effect to all other tables. -
Not able to use Commit after the function module STATUS_OBJECT_CREATE
I am using function module STATUS_OBJECT_CREATE
CALL FUNCTION 'STATUS_OBJECT_CREATE'
EXPORTING
CHGKZ = 'X'
CLIENT = SY-MANDT
OBJNR = LV_OBJNR3
OBTYP = 'IWE'
STSMA = 'ZS_RE_01'
IMPORTING
OBJNR = LV_OBJNR3.
STONR = LV_STONR.
IF SY-SUBRC = 0.
COMMIT WORK.
ENDIF.
i am getting error after the COMMIT WORK .
I am not getting any issue in the function module .after the function module i am using the COMMIT WORK and i am getting the following error message
Category ABAP Programming Error
Runtime Errors SAPSQL_ARRAY_INSERT_DUPREC
Except. CX_SY_OPEN_SQL_DB
ABAP Program SAPLBSVU
Application Component CA-GTF-TS-SMT
Date and Time 03/17/2014 07:01:29
|Short text |
| The ABAP/4 Open SQL array insert results in duplicate database records. |
|What happened? |
| Error in the ABAP Application Program |
| |
| The current ABAP program "SAPLBSVU" had to be terminated because it has |
| come across a statement that unfortunately cannot be executed. |
|What can you do? |
| Note down which actions and inputs caused the error. |
| |
| |
| To process the problem further, contact you SAP system |
| administrator. |
| |
| Using Transaction ST22 for ABAP Dump Analysis, you can look |
| at and manage termination messages, and you can also |
| keep them for a long time. |
|Error analysis |
| An exception occurred that is explained in detail below. |
| The exception, which is assigned to class 'CX_SY_OPEN_SQL_DB', was not caught |
| in |
| procedure "STATUS_UPDATE" "(FUNCTION)", nor was it propagated by a RAISING |
| clause. |
| Since the caller of the procedure could not have anticipated that the |
| exception would occur, the current program is terminated. |
| The reason for the exception is: |
| If you use an ABAP/4 Open SQL array insert to insert a record in |
| the database and that record already exists with the same key, |
| this results in a termination. |
| |
| (With an ABAP/4 Open SQL single record insert in the same error |
| situation, processing does not terminate, but SY-SUBRC is set to 4.) |
|How to correct the error |
| Use an ABAP/4 Open SQL array insert only if you are sure that none of |
| the records passed already exists in the database. |
| |
| If the error occures in a non-modified SAP program, you may be able to |
| find an interim solution in an SAP Note. |
| If you have access to SAP Notes, carry out a search with the following |
| keywords: |
| |
| "SAPSQL_ARRAY_INSERT_DUPREC" "CX_SY_OPEN_SQL_DB" |
| "SAPLBSVU" or "LBSVUU01" |
| "STATUS_UPDATE" |
| |
| If you cannot solve the problem yourself and want to send an error |
| notification to SAP, include the following information: |
| |
| 1. The description of the current problem (short dump) |
| |
| To save the description, choose "System->List->Save->Local File |
| (Unconverted)". |
| |
| 2. Corresponding system log |
| |
| Display the system log by calling transaction SM21. |
| Restrict the time interval to 10 minutes before and five minutes |
| after the short dump. Then choose "System->List->Save->Local File |
| (Unconverted)". |
| |
| 3. If the problem occurs in a problem of your own or a modified SAP |
| program: The source code of the program |
| In the editor, choose "Utilities->More |
| Utilities->Upload/Download->Download". |
| |
| 4. Details about the conditions under which the error occurred or which |
| actions and input led to the error. |
| |
| The exception must either be prevented, caught within proedure |
| "STATUS_UPDATE" "(FUNCTION)", or its possible occurrence must be declared in |
| the |
| RAISING clause of the procedure. |
| To prevent the exception, note the following: |
|System environment |
| SAP Release..... 702 |
| SAP Basis Level. 0010 |
| |
| Application server... "sds6ci" |
| Network address...... "11.224.101.53" |
| Operating system..... "Linux" |
| Release.............. "2.6.18-194.el5" |
| Hardware type........ "x86_64" |
| Character length.... 16 Bits |
| Pointer length....... 64 Bits |
| Work process number.. 17 |
| Shortdump setting.... "full" |
| |
| Database server... "gctsdb01lds.hsi.hugh" |
| Database type..... "ORACLE" |
| Database name..... "DS6" |
| Database user ID.. "SAPDS4" |
| |
| Terminal.......... "GCTEMP02VDI" |
| |
| Char.set.... "C" |
| |
| SAP kernel....... 720 |
| created (date)... "Sep 14 2013 05:28:14" |
| create on........ "Linux GNU SLES-9 x86_64 cc4.1.2 use-pr130820" |
| Database version. "OCI_102, 10.2.0.5.0, V2, default" |
| |
| Patch level. 500 |
| Patch text.. " " |
| |
| Database............. "ORACLE 10.1.0.*.*, ORACLE 10.2.0.*.*, ORACLE 11.2.*.*.*" |
| SAP database version. 720 |
| Operating system..... "Linux 2.6, Linux 3" |
| |
| Memory consumption |
| Roll.... 1317248 |
| EM...... 0 |
| Heap.... 0 |
| Page.... 0 |
| MM Used. 1242912 |
| MM Free. 53400 |
|User and Transaction |
| Client.............. 160 |
| User................ "DV018458" |
| Language key........ "E" |
| Transaction......... "SE38 " |
| Transaction ID...... "5323C30FC9364665E10000000BE06533" |
| |
| EPP Whole Context ID.... "002655EE0F241ED3ABB7D81260A28C44" |
| EPP Connection ID....... 00000000000000000000000000000000 |
| EPP Caller Counter...... 0 |
| |
| Program............. "SAPLBSVU" |
| Screen.............. "RSM13000 3000" |
| Screen Line......... 2 |
| Debugger Active..... "none" |
|Information on where terminated |
| Termination occurred in the ABAP program "SAPLBSVU" - in "STATUS_UPDATE". |
| The main program was "RSM13000 ". |
| |
| In the source code you have the termination point in line 60 |
| of the (Include) program "LBSVUU01". |
| The program "SAPLBSVU" was started in the update system. |
| The termination is caused because exception "CX_SY_OPEN_SQL_DB" occurred in |
| procedure "STATUS_UPDATE" "(FUNCTION)", but it was neither handled locally nor |
| declared |
| in the RAISING clause of its signature. |
| |
| The procedure is in program "SAPLBSVU "; its source code begins in line |
| 1 of the (Include program "LBSVUU01 ". |
|Source Code Extract |
|Line |SourceCde |
| 30| LOOP AT jsto_upd WHERE chgkz = 'X'. |
| 31| CHECK: jsto_upd-chgnr > '000', |
| 32| jsto_upd-stsma NE jsto_upd-stsma_old. |
| 33| CLEAR jcdo_tab. |
| 34| MOVE-CORRESPONDING jsto_upd TO jcdo_tab. |
| 35| MOVE-CORRESPONDING chdat TO jcdo_tab. |
| 36| jcdo_tab-stsma_new = jsto_upd-stsma. |
| 37| APPEND jcdo_tab. |
| 38| ENDLOOP. |
| 39|* Änderungen zu Einzelstatus (Insert) |
| 40| LOOP AT jest_ins WHERE chgkz = 'X'. |
| 41| CHECK jest_ins-chgnr > '000'. |
| 42| CLEAR jcds_tab. |
| 43| MOVE-CORRESPONDING jest_ins TO jcds_tab. |
| 44| MOVE-CORRESPONDING chdat TO jcds_tab. |
| 45| jcds_tab-chind = 'I'. |
| 46| APPEND jcds_tab. |
| 47| ENDLOOP. |
| 48|* Änderungen zu Einzelstatus (Update) |
| 49| LOOP AT jest_upd WHERE chgkz = 'X'. |
| 50| CHECK jest_upd-chgnr > '000'. |
| 51| CLEAR jcds_tab. |
| 52| MOVE-CORRESPONDING jest_upd TO jcds_tab. |
| 53| MOVE-CORRESPONDING chdat TO jcds_tab. |
| 54| jcds_tab-chind = 'U'. |
| 55| APPEND jcds_tab. |
| 56| ENDLOOP. |
| 57|* Verbuchung Statusobjekte |
| 58| DESCRIBE TABLE jsto_ins LINES sy-tabix. |
| 59| IF sy-tabix > 0. |
|>>>>>| INSERT jsto CLIENT SPECIFIED |
| 61| FROM TABLE jsto_ins. |
| 62| ENDIF. |
| 63| DESCRIBE TABLE jsto_upd LINES sy-tabix. |
| 64| IF sy-tabix > 0. |
| 65| field-symbols <fs_jsto_line> like jsto_upd. |
| 66| loop at jsto_upd assigning <fs_jsto_line>. |
| 67| IF <fs_jsto_line>-chgnr = '000'. |
| 68| <fs_jsto_line>-chgnr = '999'. |
| 69| ENDIF. |
| 70|* on change of status profile delete user status related to old profile |
| 71| IF <fs_jsto_line>-STSMA NE <fs_jsto_line>-STSMA_OLD. |
| 72| DELETE FROM JEST CLIENT SPECIFIED WHERE |
| 73| MANDT = <fs_jsto_line>-MANDT AND |
| 74| OBJNR = <fs_jsto_line>-OBJNR AND |
| 75| STAT LIKE 'E%'. |
| 76| DELETE FROM JCDS CLIENT SPECIFIED WHERE |
| 77| MANDT = <fs_jsto_line>-MANDT AND |
| 78| OBJNR = <fs_jsto_line>-OBJNR AND |
| 79| STAT LIKE 'E%'. |i tried with out using commmit but it is not creating Status.
When i see the function module help and they are trying to COMMIT
FU STATUS_OBJECT_CREATE
Short Text
Create Status Object
Functionality
The function module generates a status object.
Take the object number from the object number management (function modules OBJECT_NUMNBER_GET_xx).
If no object number is given, the module takes a temporary object number that must be replaced later (function module STATUS_OBJECT_SWITCH_NUMBER).
Example
Creating an internal order with number 100123 (object type "ORC") for status profile "STATSCHEM" with final object number
call function 'OBJECT_NUMBER_GET_OR'
exporting
aufnr = '100123'
importing objnr = objektnummer.
call function 'STATUS_OBJECT_CREATE'
exporting
objnr = objektnummer
obtyp = 'ORC'
stsma = 'STATSCHEM'.
commit work.
Creating the same order with a temporary object number
data: objectkey like ionra.
* TBO00-REFSTRUCT for object type 'OR' is 'IONRA'
objectkey-aufnr = '100123'.
call function 'STATUS_OBJECT_CREATE'
exporting
i_objectkey = objectkey
obtyp = 'ORC'
stsma = 'STATSCHEM'.
importing
objnr = objektnummer.
call function 'OBJECT_NUMBER_GET_OR'
exporting
aufnr = '100123'
importing objnr = objektnummer_neu.
call function 'STATUS_OBJECT_SWITCH_NUMBER'
exporting
objnr_old = objektnummer
objnr_new = objektnummer_neu.
commit work.
Notes -
Usage of function module Material_Read
hi
Can anybody explain me how to use function module Material_Read with various necessary parameters .
You can also mail me on [email protected]
Thanx n Regards
JiteshYou check the function module by checking the function module help in SE37.
The following is the details of Function Module Material_Read
Call
CALL FUNCTION 'MATERIAL_READ'
EXPORTING SCHLUESSEL = MTCOM
IMPORTING MATDATEN = View table
RETURN = MTCOR
TABLES SEQMAT01 = Internal table
( EXCEPTIONS Material_not_found = 4
Plant_not_found = 8 . )
Exceptions statement useful only for required tables (see below).
Required tables
If a table flagged as a required table does not exist, the function module terminates at this point and issues an error message. The error message can be suppressed with the exceptions statement, in which case a return code in SY-SUBRC is given instead. In both cases (with or without EXCEPTIONS), the function module does not return any data in the event of an error. You can inactivate all required tables for the view dynamically (as a whole, not individually) by setting the flag MTCOM-NOMUS.
Return codes
If the function module ends without an error message, a return code flag can be interrogated for each table in structure MTCOR; for example, MTCOR-RMARD = X means that the function module tried to read table MARD, but did not succeed. If the flag is not set, the table was read successfully or the function module did not try to read table MARD at all (because the table is not contained in the view or because no storage location was specified).
MTCOR-LVORM
This flag is set if the object is flagged for deletion.
MTCOR-PSTAT/MTCOR-FSTAT
If you specify a maintenance status in MTCOM, for example, MTCOM-PSTAT = BDE, the system checks whether the object has been maintained by the user departments Accounting (B), Material Requirements Planning (D), and Purchasing (E). As a result:
Field MTCOR-PSTAT contains the user departments that have maintained the object; for example, MTCOR-PSTAT = B means that the object has been maintained by Accounting, but not by MRP or Purchasing.
Field MTCOR-FSTAT contains the user departments that have not maintained the object, but that could have maintained it; that is, the system checks whether the user department is allowed by the material type.
Note
This check takes time (performance). If it is not required, the function module should always be called with MTCOM-PSTAT = space.
MTCOM-NOVOR
If a plant has been specified, but no valuation level or sales organization, the function module automatically adopts (for the plant specified) the corresponding values for the valuation level and sales organization in table T001W. You can inactivate this function by setting the flag MTCOM-NOVOR.
Locking materials
If materials are locked by function module MATERIAL_READ, MATERIAL_READ_MAKF, or by other function modules of function groups MATL or MAKF, the information on which materials were already locked is buffered for performance reasons. This buffer is reset or ignored if the two indicators (MTCOM-)KZSPR and (MTCOM-)KZRFB are set. You can also use function module MATERIAL_RESET_ENQ_BUFFER or MATERIAL_RESET_ENQ_BUFFER_MAKF to completely reset this buffer. This can, for example, be necessary if function module DEQUEUE_ALL has been executed.
Parameters
SCHLUESSEL
MATDATEN
RETURN
MATPER
SEQMAT01
Exceptions
ACCOUNT_NOT_FOUND
BATCH_NOT_FOUND
FORECAST_NOT_FOUND
LOCK_ON_ACCOUNT
LOCK_ON_MATERIAL
LOCK_ON_PLANT
LOCK_ON_SALES
LOCK_ON_SLOC
LOCK_ON_BATCH
LOCK_SYSTEM_ERROR
MATERIAL_NOT_FOUND
PLANT_NOT_FOUND
SALES_NOT_FOUND
SLOC_NOT_FOUND
SLOCNUMBER_NOT_FOUND
SLOCTYPE_NOT_FOUND
TEXT_NOT_FOUND
UNIT_NOT_FOUND
INVALID_MCH1_MATNR
INVALID_MTCOM
SA_MATERIAL
WV_MATERIAL
WAART_ERROR
T134M_NOT_FOUND
Reward Points if useful. -
Reg:finding out the function module to manager of organization unit
Hi Experts,
Is there any function module for finding out the Manager to organization unit.RH_GET_LEADING_POSITION gives you the position of the manager
-
Function Modules, for listing Cost centers Under a manager
Hi All,
1. Can any one please suggest me any Function Module available for listing the cost center under a manager, given only the Manager's username or pernr.
2. And also the Function Group which has the collection of Function Modules which deals with operations and reporting on Cost centers from a Manager's Role (basically on budjet Monitoring aspects).
Thanks and Regards,
GirimuruganIf this is the followup of the previous post (responsible person) and you wanted to get a list of cost centers based on that using a FM , i doubt that there is a FM available for that. You have to read the table to get the info.
When you say manager, he could be a manager for a HR organisation but the cost organization may be different. in a typical set up it would be a cost center group (which will have set of cost centers under it) and this will be linked to a hr organization.
All this is purely based on how cost center hierarchy (standard hierarchy) and hr organization maintained and how they are linked.
Regards
Raja -
Function module for automating creation of organizational unit
Experts,
I am using SRM 4.0. In my system R/3 is acting as backend.
For creation of new organisational unit in SRM, which is not present in SRM but present in R/3 side i have to do the manual activity every time.
Is there any function module? Which can automate this process. If there is any function module which i can use please let me know. and how can i use that also please let me know.
By this automation every time through the program the new organization unit should created in SRM side.
Please let me know..
Thanks in advance. I will appriciate through rewards points.Hi,
Thanks for your input. But i am planning to send one file for HR records and then from that file through program i will upload the file. IF for some user the orgaisation unit will not be found then there itself it would create the OU through Function module(If Any)... I am doing like this as the HR system is some legacy system not the R/3 system.
So Please help me to find out function module.
i will appeciate for you help.
Thanks -
Function module for to Create fund/Grant management Derivation rules
Hi All,
Is there any function module for to create a derivation rules for fund/Grant management.
Thanks in Advance.
Nara.Hi,
Please try with FM KED0_CREATE_DERIVATION_TABLE
Please let me know if you have some issues,
Regards,
Lijo Joseph
*Assign Points ifuseful. -
Function module for Mass uploadnotifications in Quality Management
Hi Experts,
I need function module for quality management which MASS UPLOAD THE QM NOTIFICATIONS.
ThanksHi,
For updation use BAPI_QUALNOT_ADD_DATA.
Hope it helps.
Regards
Hiren K.Chitalia -
Function Modules for Change Manager Tickets
Dear all,
I have the requirement to display some basic statistics about the number of change manager tickets that are currently open, that are assigned to a person and in proceesing state.
I had a look into the system but could find a valuable hint on which function modules are available and which are even RFC enabled.
So is there someone who has achieved this or does know how to access that information?
I would be very happy about any hints.
Thank you and best regards.
NicolasHallo Nicolas,
I had the same requirement and started looking into this. Essentially I used php to make RFC calls to SAP.
there are at least 2 FM (they are both RFC enabled) you can use to extract service desk ticket data.
They are:
- CRM_DNO_SELECT_SERVICE_TRANS
This FM has the service desk number as you see it in CRMD_ORDER or CRM_DNO_MONITOR
The other FM is:
- DNO_OW_GET_NOTIFICATIONS and report RNOTIFWL
This will give you data for the notification
You can use DNOH_OBJNR in the first FM and OBJNR in the second to join the two together.
The only thing is that there is no selection screen to select the data within the FM. When you execute both FM you have to provide a variant - based on that variant the data will be picked up. The best thing is probably to setup a variant that will pick up all your tickets and have your rfc calling application compile the stats that you are after. Also the variant you use is not the on you would use in CRM_DNO_MONITOR you have to go the FM transaction and create the variant for it there.
Hope it helps, ~p. -
Function Modules for Cycle Counting in Warehouse Management.
Hi All,
Can anyone provide me with a list of function modules related to Cycle Counting in Warehouse Management? Also, what is the procedure to find these in SE37?
Many thanks in advance.
aviHello Avi,
What is the purpose of this functional module / BAPI? for Inv document creation or change or display or inventory count update or clear difference?
Complete BAPI list is available in the first thread of this forum.
Your answer will help us to provide accurate ansdre.
To to SE37 -> Press F4 -> SAP Applications --> LE --> LE-WM here you will find all LE related FM or BAPI.
Hope this helps.
Regards
Arif Mansuri -
Standard function module for checking the sales organization and plant
Hi all,
Does have standard function module for checking the relationship between sales organization and plant?
Thanks a lot!
Ninahi
good
check these BAPIS
BAPI_SALESGROUP_GET_DETAIL Sales Group: Display Name
BAPI_SALESOFFICE_GET_DETAIL Sales Office: Display Name
BAPI_SALESOFFICE_GRP_EXIST Sales Office / Sales Group: Existence Check
BAPI_SALESORG_EXIST Sales Organization: Existence Check
BAPI_SALESORG_GET_DETAIL Sales Organization: Display Data
BAPI_SALESORG_OFFICE_EXIST Sales Organization / Sales Office: Existence Check
PLANT=>
BAPI_PROMO_GETSITEPLANNING Detailed Data for the Plants Involved in a Promotion
thanks
mrutyun^ -
Bapi or Function Module for Change request Management status update
Hi,
Do we have any Bapi or function module to change the status of Change request Management.
Ex: If the status is in To Be Processed i have to change that status to Authorized using any Bapi or FM.
I have tried with the BAPI crm_icss_change_request but its not updating the status.
Do you have any idea on this???
Regards
Pavanhello,
the function module is 'SOCM_STATUS_VALUES'
you can find an example of usage of it in the program CRM_SOCM_SERVICE_REPORT
CALL FUNCTION 'SOCM_STATUS_VALUES'
EXPORTING
im_process_type = report_list-process_type
IM_LANGU = SY-LANGU
TABLES
status_values = lt_vsocm_stat_propt.
I hope it helps
best regards -
BAPI/Function Module for tx PR05(Travel Expense Manager)
Hi All,
I am searching for BAPI/Function Module for tx PR05(Travel Expense Manager).
Thanks.Hi All
Thanks for your input.
I choose BDC option for PR05 maintain. As the BAPIs are calling PR01.
-RP
Maybe you are looking for
-
I get this report everytime i try to open firefox: AdapterDeviceID: 9490 AdapterVendorID: 1002 Add-ons: {5F590AA2-1221-4113-A6F4-A4BB62414FAC}:0.45.6.20100202.1,{89506680-e3f4-484c-a2c0-ed711d481eda}:0.9.5.6,[email protected]:1.1.1,{6F0976E6-26F3-4AF
-
When I plug my iPod nano into my Windows laptop, it says 'Format disk in drive E'. Will this lose everything if I do this?
-
Owerbook g4 not starting up after new hard drive and software update
Hello, I know that there are several postings that are similliar to this query, but none have answered my question. I have a Powerbook g4 15 inch 1.67/1.5 Ghz with 1 gig of Ram. A few months ago I suddenly found myself unable to log into my computer
-
S_ALR_87012357-Advance Return for Tax on Sales&Purchases-additional steps
Hi SAP Team, We have config "Advance Return tax on Sales /Purchases" u2013 S_ALR_87012357 for finance team in Czech Republic (CZ) and the report is working fine and weu2019re using the program RFUMSV00. Now we have an additional issue that need to me
-
Integrity check of tables between Oracle 9i and Oracle 11g
Hi, |Is there a tool or a way to check the integrity of data in the tables after migrating data from an Oracle 9i database to an Oracle 11g database? Thanks for you help.