Baanboard.com

Go Back   Baanboard.com > Forum > Baan Quick Support: Functional & Technical > Tools Development

User login

Frontpage Sponsor

Main

Google search


Poll
What version of Baan have you installed
Baan IV
30%
FP3
3%
FP4
0%
FP5
0%
FP6
2%
FP7
4%
10.2 (incl. 10.2.1)
3%
10.3
7%
10.4
18%
10.5
29%
Other
2%
Total votes: 89

Baanboard at LinkedIn


Reference Content

Reply
 
Thread Tools Display Modes
  #1  
Old 13th February 2018, 22:02
SirBaan SirBaan is offline
Junior Member
 
Join Date: Feb 2007
Location: Munich, Germany
Posts: 7
SirBaan is on a distinguished road
Baan: BaaN IV, BaaN ERP, SSA LN - DB: Oracle - OS: Unix, Windows
DB DLLs
Baan: Other/Unknown
C/S: None/Unknown

Hello Community,
Who can give me some information.
What are the DB DLLs, I mean the DLLs of Type ppmmmxxxdb.
What are they, for what reason are they used, how are they used and how are they built and called by whom. Is there any documentation available?
Any information is highly appreciated.
Thank you in advance.
Regards
Reply With Quote
  #2  
Old 14th February 2018, 18:10
NPRao's Avatar
NPRao NPRao is offline
Guru
 
Join Date: Aug 2001
Location: Pacific NW, USA
Posts: 3,043
NPRao will become famous soon enough
Baan: Baan 4-5,5.2(Reger),LN-6.1,Infor LN-10.x - DB: Oracle,MS-SQL - OS: HPUX, Linux, Windows
Refer to the latest Programmer's manual -
Quote:
DB DLL Overview
Overview
A DB DLL (DBDLL) is a DLL with the same name as a standard DAL with the extension 'db'. E.g. 'whinh200db' for table whinh200. A DBDLL can be implemented in order to be able to log database actions (insert update or delete) by means of specific hooks that will be executed by the 4GL engine and/or DAL Engine. Stand-alone database operations (not triggered by saves and deletes of the 4GL engine or DAL Engine) are also extended to perform the extra business logic before and after performing the actual database operation. In this way it is possible to log database actions.

Interaction with 4GL Engine / DAL Engine
When present, the DB DLL for a certain table will be loaded by the 4GL engine/DAL Engine by the time the DAL for this particular table will be loaded. In situations where no DAL is present this will be the moment at which a DAL would be loaded if it existed. This means that there is no need to have a DAL in order to make use of the DBDLL.

Interaction with db operations
When one of the following database operations is executed stand-alone (so not as part of the standard save/deletes of the 4GL Engine or DAL Engine):

db.insert()
db.update()
db.delete()
and the DB DLL for the related table is present, the DBDLL will be loaded prior the database operation. This means that there is no need to have a DAL or a session in order to make use of the DBDLL. During the execution of the hooks (initiated by a database operation) the boolean initiated.by.dal will be false.

Preconditions
A DLL becomes a DBDLL when it meets the following conditions:

Its name is consisting of the table code with 'db' as suffix, like whinh200db
It includes bic_dal, as follows: #include <bic_dal>
Restrictions
A DBDLL is treated like a regular DAL. This means all kind of DAL related functionality can be used, like:

Function with.old.object.values.do()
Function with.object.set.do()
Pre-defined variable subdal
Note however that the following restrictions apply:

Business methods cannot be implemented in a DBDLL Instead the business logic should be programmed in another (separate) general DLL.
It is strongly discouraged to define other external functions in a DBDLL and link the DBDLL directly to other scripts. Instead, use a normal general DLL. (This also applies to regular DALs).
The execution of db hooks can be enabled/disable with the following commands

disable.db.dll()
enable.db.dll()
DB Hooks
A DBDLL script can contain the following hooks:

db.before.insert()
db.after.insert()
db.before.update()
db.after.update()
db.before.delete()
db.after.delete()
Flow of hooks
In case a DAL is involved, as well as a UE DLL, the flow of the hooks is as follows (example of an insert):

1. ue.before.before.save.object (in UE DLL)
2. before.save.object (in DAL)
3. ue.after.before.save.object (in UE DLL)
4. db.before.insert (in DB DLL)
5. <actual db.insert>
6. db.after.insert (in DB DLL)
7. ue.before.after.save.object (in UE DLL)
8. after.save.object (in DAL)
9. ue.after.after.save.object (in UE DLL)
__________________
The art of perfection does not lie in doing extraordinary things but, doing ordinary things extraordinarily well. [-N. Prashanth Rao]
How To Ask Questions The Smart Way,BaaNBoard,NPRao
Reply With Quote
  #3  
Old 15th February 2018, 20:53
SirBaan SirBaan is offline
Junior Member
 
Join Date: Feb 2007
Location: Munich, Germany
Posts: 7
SirBaan is on a distinguished road
Baan: BaaN IV, BaaN ERP, SSA LN - DB: Oracle - OS: Unix, Windows
Thank you very much, NPRao.
I had the 10.3 Programmer's Guide and there the DB DLLs are not mentioned.
Now I've downloaded the 10.5 and I got it.
Thank you very much for your advice.

Regards,
Sirbaan
Reply With Quote
Sponsored Links
Reply


Currently Active Users Viewing This Thread: 1 (0 members and 1 guests)
 
Thread Tools
Display Modes

Posting Rules
You may not post new threads
You may not post replies
You may not post attachments
You may not edit your posts

vB code is On
Smilies are On
[IMG] code is Off
HTML code is Off
Forum Jump

Similar Threads
Thread Thread Starter Forum Replies Last Post
expired dlls in fp7 sa_sch Tools Development 2 7th July 2011 17:50
Functions and DLLs sandyjack Tools Development 8 11th November 2010 11:46
Llamar a DLLs de BAAN desde C++ o Java dani_drio Forum español 1 25th April 2006 06:09
How to see the functions exposed by various DLL's and include files jack786 Tools Development 7 20th July 2004 16:55
Docu: functions --> ERP DLL's spartacus Tools Development 3 19th November 2002 21:17


All times are GMT +2. The time now is 15:57.


©2001-2017 - Baanboard.com - Baanforums.com