frgu123
14th February 2003, 10:48
I've written a BOI for table TDIPU030 (Item-Manufacturer).
When I add an object and next try to synchronize the manager, I receive following error message:

Run-time error '-2147467259 (800004005)':

Descriptors:
*** 0 ***
Error: Fatal error 205 in insert
FieldName = "" MessageCode="ttstps0170" ActionType="Insert"
BusinessObject="ItemManufacturerInformation@459"

I receive the same error when I try to add an item in TDIPU030 by making use of the VB application generated by the BOI Test Wizard.

Does anybody know what could be the possible cause of the error?

mgakhar
14th February 2003, 19:01
Is this Item present in the General Item data table ?? Also u can check the log files created on ur client m/c and on the Baan server to get a better idea of what is going wrong.

MG.

frgu123
17th February 2003, 09:30
The item is present in the general item list. Also the manufacturer exists. If I create the item manually, everything is ok.

Any ideas?

Renegade
17th February 2003, 10:22
what does the buslog say?

BCK or OpenWorld? moreover, u r doin thro AFS or dll/dal?

can u give more details?

frgu123
17th February 2003, 10:29
We use openworld, no AFS, but DAL.

This is part of the log file:

Feb 14 09:40:40 (main): BusDoc Protocols are equal version = 0
Feb 14 09:40:40 (main): Unregistering manager com.baan.b3.boi1.BusinessObjectManager$BdmAdapter@50e for key Key[Guid-104521204021055,Id-null,Tag-null]
Feb 14 09:40:41 (main): Now registering manager com.baan.b3.boi1.BusinessObjectManager$BdmAdapter@50e in the Registry
Feb 14 09:40:41 (main): Registering manager com.baan.b3.boi1.BusinessObjectManager$BdmAdapter@50e for key Key[Guid-null,Id-null,Tag-ItemManufacturerInformation]
Feb 14 09:40:41 (main): Registering manager com.baan.b3.boi1.BusinessObjectManager$BdmAdapter@50e for key Key[Guid-null,Id-null,Tag-tdipu030]
Feb 14 09:40:41 (main): Connection : sendAndWaitForAnswer called
Feb 14 09:40:41 (main): <?xml version="1.0"?>
<busdoc>
<header>
<msg-id>104521204129156</msg-id>
<receiver>
<component>cn=kuuerp08-data, o=barco.com</component>
<sent-to>socket://kuuerp08.barco.com:7916</sent-to>
</receiver>
<sender>
<user>
</user>
<component>cn=FRGu@bgsclt3ubps.barco.com-10452078532091</component>
<reply-to>socket://150.158.193.114:1104/</reply-to>
</sender>
</header>
<update>
<tuple sync_id="0">
<old/>
<new>
<tdipu030>
<ccty>BE</ccty>
<cmnf>AVX</cmnf>
<efdt>2003-03-13T23:00:00</efdt>
<exdt>2020-12-30T23:00:00</exdt>
<item> A115400</item>
<mtbf>0.0</mtbf>
</tdipu030>
</new>
</tuple>
</update>
</busdoc>

Feb 14 09:40:41 (main): Now sending 581 bytes to socket://kuuerp08.barco.com:7916, bytes are:
<?xml version="1.0"?><busdoc><header><msg-id>104521204129156</msg-id><receiver><component>cn=kuuerp08-data, o=barco.com</component><sent-to>socket://kuuerp08.barco.com:7916</sent-to></receiver><sender><user></user><component>cn=FRGu@bgsclt3ubps.barco.com-10452078532091</component><reply-to>socket://150.158.193.114:1104/</reply-to></sender></header><update><tuple sync_id="0"><old/><new><tdipu030><ccty>BE</ccty><cmnf>AVX</cmnf><efdt>2003-03-13T23:00:00</efdt><exdt>2020-12-30T23:00:00</exdt><item> A115400</item><mtbf>0.0</mtbf></tdipu030></new></tuple></update></busdoc>
Feb 14 09:40:41 (main): busdoc, sent : 1071
Feb 14 09:40:41 (MessageReaderThread-0): Received a message of size 724 on Socket[addr=kuuerp08.barco.com/150.158.248.24,port=4110,localport=1104]
Feb 14 09:40:41 (MessageReaderThread-0): <?xml version="1.0"?><busdoc><header><msg-id>104521204129156</msg-id><sender><component>cn=kuuerp08-data, o=barco.com</component><reply-to>socket://kuuerp08.barco.com:7916</reply-to></sender><receiver><component>cn=FRGu@bgsclt3ubps.barco.com-10452078532091</component><sent-to>socket://150.158.193.114:1104/</sent-to></receiver></header><update><tuple sync_id="0"><old/><new><tdipu030><ccty>BE</ccty><cmnf>AVX</cmnf><efdt>2003-03-13T23:00:00</efdt><exdt>2020-12-30T23:00:00</exdt><item> A115400</item><mtbf>0.0</mtbf></tdipu030></new><error><error><FieldName></FieldName><MessageCode>ttstps0170</MessageCode><MessageDescription>Fatal error 205 in insert</MessageDescription></error></error></tuple></update></busdoc>
Feb 14 09:40:41 (ParserThread-1): Retrieving manager null for key Key[Guid-104521204129156,Id-null,Tag-null]
Feb 14 09:40:41 (ParserThread-1): Using default manager and factory to parse message with id 104521204129156
Feb 14 09:40:41 (ParserThread-1): Registry returns default manager
Feb 14 09:40:41 (ParserThread-1): Retrieving manager null for key Key[Guid-104521204129156,Id-null,Tag-null]
Feb 14 09:40:41 (ParserThread-1): Retrieving manager null for key Key[Guid-null,Id-cn=kuuerp08-data, o=barco.com,Tag-tdipu030]
Feb 14 09:40:41 (ParserThread-1): Retrieving manager com.baan.b3.boi1.BusinessObjectManager$BdmAdapter@50e for key Key[Guid-null,Id-null,Tag-tdipu030]
Feb 14 09:40:41 (ParserThread-1): Received the busdoc 104521204129156
Feb 14 09:40:41 (ParserThread-1): <?xml version="1.0"?>
<busdoc Class="com.eibus.co.dom.BusinessElementImpl">
<header Class="com.eibus.co.dom.HeaderImpl">
<msg-id Class="com.eibus.co.dom.BusinessElementImpl">104521204129156</msg-id>
<receiver Class="com.eibus.co.dom.ReceiverImpl">
<component Class="com.eibus.co.dom.BusinessElementImpl">cn=FRGu@bgsclt3ubps.barco.com-10452078532091</component>
<sent-to Class="com.eibus.co.dom.BusinessElementImpl">socket://150.158.193.114:1104/</sent-to>
</receiver>
<sender Class="com.eibus.co.dom.SenderImpl">
<user Class="com.eibus.co.dom.BusinessElementImpl">
</user>
<component Class="com.eibus.co.dom.BusinessElementImpl">cn=kuuerp08-data, o=barco.com</component>
<reply-to Class="com.eibus.co.dom.BusinessElementImpl">socket://kuuerp08.barco.com:7916</reply-to>
</sender>
</header>
<update Class="com.eibus.co.dom.UpdateImpl">
<tuple Class="com.eibus.co.dom.TupleImpl" sync_id="0">
<new Class="com.eibus.co.dom.BusinessElementImpl">
<tdipu030 Class="com.baan.b3.boi1.BusinessObject$BusinessElementAdapter">
<ccty Class="com.eibus.co.dom.BusinessElementImpl">BE</ccty>
<cmnf Class="com.eibus.co.dom.BusinessElementImpl">AVX</cmnf>
<efdt Class="com.eibus.co.dom.BusinessElementImpl">2003-03-13T23:00:00</efdt>
<exdt Class="com.eibus.co.dom.BusinessElementImpl">2020-12-30T23:00:00</exdt>
<item Class="com.eibus.co.dom.BusinessElementImpl"> A115400</item>
<mtbf Class="com.eibus.co.dom.BusinessElementImpl">0.0</mtbf>
</tdipu030>
</new>
<error Class="com.eibus.co.dom.BusinessElementImpl">
<error Class="com.eibus.co.dom.SynchronizationErrorImpl">
<MessageCode Class="com.eibus.co.dom.BusinessElementImpl">ttstps0170</MessageCode>
<MessageDescription Class="com.eibus.co.dom.BusinessElementImpl">Fatal error 205 in insert</MessageDescription>
</error>
</error>
</tuple>
</update>
</busdoc>

Feb 14 09:40:41 (main): BusDoc Protocols are equal version = 0

mgakhar
18th February 2003, 02:28
Error 205 indicates that the field value is out of range and does not agree with the domain definition.

Are you prefixing 9 (or wotever is the length for project field) spaces to the item code for the Project ???

Also you should be able to see a much better error message in your log.bshell file in $BSE/log directory.

MG.

frgu123
18th February 2003, 10:02
I can't find the bshell.log file. Where exactly should I find it?

Also, when I check the eventviewer on the server it displays the following message:

The description for Event ID ( 1000 ) in Source ( Baan ) cannot be found. The local computer may not have the necessary registry information or message DLL files to display messages from a remote computer. The following information is part of the event: Env b52a01 (e:\baan\b52a01)
Prog bshell file \db\lib\dbc\C_DD_CHK.C # 259
Keyword Check dd
Username frgu type N language 2
Process 0xc98
ProcessSet FRGu@BGSCLT3UBPS:356
Lasterror 0
Errno 0
bdberrno 0
Message tdipu030.ccty not according to MUST_BE_FILLED (value ' ')


As you can see in the logfile of my previous message, the ccty field IS filled in.

mgakhar
18th February 2003, 18:14
The file log.bshell should be on your Baan server under the $BSE/log directory.

Also like I mentioned in my previous post, the item field should have 9 spaces prefixed to ur item code. So it would look like this " A115400".

Can you try inserting this record by writing a simple 3gl script in Baan ??

MG.

frgu123
18th February 2003, 18:19
I'm new to baan and have no experience in 3GL.

I already inserted the spaces before the item number. You can see that in the adapter log file.

I looked on the server and couldn't find a file called bshell.log. Is there an option that you have to set to create this file? Also, I don't know what $BSE is standing for? Is this an alias for a folder on the server?

maxime
18th February 2003, 18:34
Hello,

The key to your problem is this:

"Message tdipu030.ccty not according to MUST_BE_FILLED (value ' ')".

Please make sure that the field tdipu030.ccty is populated with the necessary value. This Will solve your problem.

Maxime.

mgakhar
18th February 2003, 20:03
The log file name is "log.bshell" and you will find it under $BSE/log. When you start Baan, you can check your Baan configuration file to find what is the path for $BSE.

If you are on Unix, then when u login to Baan, under the file menu click "Run" -> Enter "Ksh" for Program/session and click on Run External Program to check it and then press enter.

Once you are on the unix prompt u can do a cd $BSE/log. Do ls for a complete listing of files and check whether this file log.bshell is present.

You may want to run the BOI once again so that u will find the latest entry in this log file.

Though u may also want to try creating a 3GL code and write a simple sql to insert this same record. You may have someone at ur site to help u create the 3GL code.

MG.

frgu123
20th February 2003, 18:09
Eventually I found the cause of the problem.

The table tdipu030 needs 5 required fields to be filled in:
item, manufacturer, effective date, country and status.

If you create manufacturer-items with the session tdipu0130m000, it will fetch the country of the entered manufacturer as default, but you can overwrite this.

Filling in the above five fields to insert the manufacturer-item runs ok. If I entered the same five fields in my BOI, it returned an error message on the country code in TDIPU030 (I could see this in the eventviewer on the server)

What happened: The manufacturer I was referring to in the BOI was a manufacturer with no country code filled in. When I use the synchronize method of the BOI manager, the value I entered in my BOI is overwritten by the country value of the linked manufacturer, = with an empty one. That's why I receive the error message.
Even when I fill in the country code of the manufacturer, and I enter a different country code in the manufacturer item, it is also overwritten by the manufacturer's one.

What is the reason of this strange behavior? Is the DAL responsible for this?
Is there something about the DAL that we have to keep in mind when writing a BOI?
Is our DAL wrong?

maxime
20th February 2003, 18:36
Can you send me the source code of the dal of tdipu030. I will let you know my thoughts after going through the code.

Regards,
Maxime.

Youp2001
24th February 2003, 08:48
Probably your problem is caused by the fact that you use the DAL in stead of AFS. Baan advises not to use a DAL in your BOI but use an AFS instead. Then you will get the same behaviour as you have in your session.