I’m fairly new to development in Navision, so if this is something really easy that I’ve just overlooked, I apologize. I’m working on a dataport to pull in our order information from a barcode scanning system into Navision. However, there are a few fields I’m trying to write to the database based on values in the dataport. I’d like to write these fields to the Sales Header table. For example: If there’s a credit card number in the record I’m importing, then it writes the order as a Sales Order, while if there’s not a credit card number, it writes the order as a Sales Quote. Payment terms are then adjusted appropriately. The problem is that I can’t figure out what I do after I assign the values. I feel like it should be enough to just assign the values and that I shouldn’t need an explicit MODIFY, but the fields aren’t writing to the database. The code is in the OnAfterFormatField trigger for the credit card number field in the dataport. It comes in OK as a quote, but the Payment Terms Code isn’t writing. Here’s my code: IF ccnumber <> ‘’ THEN BEGIN “Sales Header”.“Document Type” := 1; “Sales Header”.“Payment Terms Code” := ‘CC’; END ELSE BEGIN “Sales Header”.“Document Type” := 0; “Sales Header”.“Payment Terms Code” := ‘Net 30’; END; In addition, I’ve got some code in the OnBeforeImportRecord trigger that should set Document Date and Project Code to defaults for this import–Document Date works fine, but Project Code does not. The code is below–do I need an explicit MODIFY or something? “Sales Header”.“Document Date” := TODAY; “Sales Header”.“Project Code” := ‘SMALLB-04’; Thanks for any help.
Like a fool, I forgot to mention that I’m working in Navision 2.6. We’re moving to 3.6 soon, but this needs to be done sooner.
Well… usually when you do changes to the record when importing checking the data and giving values to other fields what you do is using the onAfterImportRecord trigger on the own dataitem.
It looks like Alfonso’s solution was right. Some fields (Document Type, for example) will only work if they’re in OnBeforeImportRecord, but most will work best if they’re in OnAfterImportRecord.