johnny9864
Programmer
I have an issue in the .Net library I have no issue creating a vendor using a macro:
Dim mDBLinkCmpRW As AccpacCOMAPI.AccpacDBLink
Set mDBLinkCmpRW = OpenDBLink(DBLINK_COMPANY, DBLINK_FLG_READWRITE)
Dim mDBLinkSysRW As AccpacCOMAPI.AccpacDBLink
Set mDBLinkSysRW = OpenDBLink(DBLINK_SYSTEM, DBLINK_FLG_READWRITE)
Dim temp As Boolean
Dim APVENDOR1header As AccpacCOMAPI.AccpacView
Dim APVENDOR1headerFields As AccpacCOMAPI.AccpacViewFields
mDBLinkCmpRW.OpenView "AP0015", APVENDOR1header
Set APVENDOR1headerFields = APVENDOR1header.Fields
Dim APVENDOR1detail As AccpacCOMAPI.AccpacView
Dim APVENDOR1detailFields As AccpacCOMAPI.AccpacViewFields
mDBLinkCmpRW.OpenView "AP0407", APVENDOR1detail
Set APVENDOR1detailFields = APVENDOR1detail.Fields
APVENDOR1header.Compose Array(APVENDOR1detail)
APVENDOR1detail.Compose Array(APVENDOR1header)
Dim APVENDSTAT2 As AccpacCOMAPI.AccpacView
Dim APVENDSTAT2Fields As AccpacCOMAPI.AccpacViewFields
mDBLinkCmpRW.OpenView "AP0019", APVENDSTAT2
Set APVENDSTAT2Fields = APVENDSTAT2.Fields
Dim APVENDCMNT3 As AccpacCOMAPI.AccpacView
Dim APVENDCMNT3Fields As AccpacCOMAPI.AccpacViewFields
mDBLinkCmpRW.OpenView "AP0014", APVENDCMNT3
Set APVENDCMNT3Fields = APVENDCMNT3.Fields
APVENDSTAT2Fields("YTDACTIVE").Value = "1" ' Enable YTD Calculations
APVENDOR1header.RecordClear
APVENDSTAT2.RecordClear
APVENDSTAT2Fields("CNTYR").PutWithoutVerification ("2020") ' Year
APVENDOR1headerFields("VENDORID").Value = "TEST1" ' Vendor Number
temp = APVENDOR1header.Exists
APVENDOR1headerFields("VENDNAME").Value = "Test1" ' Vendor Name
APVENDOR1headerFields("IDGRP").Value = "ANFL" ' Group Code
APVENDOR1header.Insert
APVENDSTAT2.RecordClear
APVENDSTAT2Fields("VENDORID").PutWithoutVerification ("TEST1") ' Vendor Number
APVENDSTAT2Fields("CNTYR").PutWithoutVerification ("2020") ' Year
But using .net :
ACCPAC.Advantage.View apVendorHeaderView = dbLink.OpenView("AP0015");
ACCPAC.Advantage.View apVendorDetailView = dbLink.OpenView("AP0407");
ACCPAC.Advantage.View apVendorStatsView = dbLink.OpenView("AP0019");
ACCPAC.Advantage.View apVendorCmntView = dbLink.OpenView("AP0014");
apVendorHeaderView.Compose(new ACCPAC.Advantage.View[] { apVendorDetailView });
apVendorDetailView.Compose(new ACCPAC.Advantage.View[] { apVendorHeaderView });
apVendorStatsView.Fields.FieldByName("YTDACTIVE").SetValue(1, true);
apVendorHeaderView.RecordClear();
apVendorStatsView.RecordClear();
apVendorStatsView.Fields.FieldByName("CNTYR").SetValue(DateTime.Now.Year, false);
apVendorHeaderView.Fields.FieldByName("VENDORID").SetValue(vendors.Tables[0].Rows[0]["ConsultantReference"].ToString(), false);
bool exist = apVendorHeaderView.Exists;
apVendorHeaderView.Fields.FieldByName("VENDNAME").SetValue(vendors.Tables[0].Rows[0]["CompanyName"].ToString(), false);
apVendorHeaderView.Fields.FieldByName("IDGRP").SetValue(vendors.Tables[0].Rows[0]["IDGRP"].ToString(), false);
apVendorHeaderView.Insert();
I get the error "Tax group cannot be blank."
I don't see I am missing anything, since IDGRP is set, the tax group should be deducted as in the macro
Dim mDBLinkCmpRW As AccpacCOMAPI.AccpacDBLink
Set mDBLinkCmpRW = OpenDBLink(DBLINK_COMPANY, DBLINK_FLG_READWRITE)
Dim mDBLinkSysRW As AccpacCOMAPI.AccpacDBLink
Set mDBLinkSysRW = OpenDBLink(DBLINK_SYSTEM, DBLINK_FLG_READWRITE)
Dim temp As Boolean
Dim APVENDOR1header As AccpacCOMAPI.AccpacView
Dim APVENDOR1headerFields As AccpacCOMAPI.AccpacViewFields
mDBLinkCmpRW.OpenView "AP0015", APVENDOR1header
Set APVENDOR1headerFields = APVENDOR1header.Fields
Dim APVENDOR1detail As AccpacCOMAPI.AccpacView
Dim APVENDOR1detailFields As AccpacCOMAPI.AccpacViewFields
mDBLinkCmpRW.OpenView "AP0407", APVENDOR1detail
Set APVENDOR1detailFields = APVENDOR1detail.Fields
APVENDOR1header.Compose Array(APVENDOR1detail)
APVENDOR1detail.Compose Array(APVENDOR1header)
Dim APVENDSTAT2 As AccpacCOMAPI.AccpacView
Dim APVENDSTAT2Fields As AccpacCOMAPI.AccpacViewFields
mDBLinkCmpRW.OpenView "AP0019", APVENDSTAT2
Set APVENDSTAT2Fields = APVENDSTAT2.Fields
Dim APVENDCMNT3 As AccpacCOMAPI.AccpacView
Dim APVENDCMNT3Fields As AccpacCOMAPI.AccpacViewFields
mDBLinkCmpRW.OpenView "AP0014", APVENDCMNT3
Set APVENDCMNT3Fields = APVENDCMNT3.Fields
APVENDSTAT2Fields("YTDACTIVE").Value = "1" ' Enable YTD Calculations
APVENDOR1header.RecordClear
APVENDSTAT2.RecordClear
APVENDSTAT2Fields("CNTYR").PutWithoutVerification ("2020") ' Year
APVENDOR1headerFields("VENDORID").Value = "TEST1" ' Vendor Number
temp = APVENDOR1header.Exists
APVENDOR1headerFields("VENDNAME").Value = "Test1" ' Vendor Name
APVENDOR1headerFields("IDGRP").Value = "ANFL" ' Group Code
APVENDOR1header.Insert
APVENDSTAT2.RecordClear
APVENDSTAT2Fields("VENDORID").PutWithoutVerification ("TEST1") ' Vendor Number
APVENDSTAT2Fields("CNTYR").PutWithoutVerification ("2020") ' Year
But using .net :
ACCPAC.Advantage.View apVendorHeaderView = dbLink.OpenView("AP0015");
ACCPAC.Advantage.View apVendorDetailView = dbLink.OpenView("AP0407");
ACCPAC.Advantage.View apVendorStatsView = dbLink.OpenView("AP0019");
ACCPAC.Advantage.View apVendorCmntView = dbLink.OpenView("AP0014");
apVendorHeaderView.Compose(new ACCPAC.Advantage.View[] { apVendorDetailView });
apVendorDetailView.Compose(new ACCPAC.Advantage.View[] { apVendorHeaderView });
apVendorStatsView.Fields.FieldByName("YTDACTIVE").SetValue(1, true);
apVendorHeaderView.RecordClear();
apVendorStatsView.RecordClear();
apVendorStatsView.Fields.FieldByName("CNTYR").SetValue(DateTime.Now.Year, false);
apVendorHeaderView.Fields.FieldByName("VENDORID").SetValue(vendors.Tables[0].Rows[0]["ConsultantReference"].ToString(), false);
bool exist = apVendorHeaderView.Exists;
apVendorHeaderView.Fields.FieldByName("VENDNAME").SetValue(vendors.Tables[0].Rows[0]["CompanyName"].ToString(), false);
apVendorHeaderView.Fields.FieldByName("IDGRP").SetValue(vendors.Tables[0].Rows[0]["IDGRP"].ToString(), false);
apVendorHeaderView.Insert();
I get the error "Tax group cannot be blank."
I don't see I am missing anything, since IDGRP is set, the tax group should be deducted as in the macro