cancel
Showing results for 
Show  only  | Search instead for 
Did you mean: 

Business Adapter

While executing a custom business adapter i am getting below error. 

An error has occurred when trying to run the query [select * from [flexera_records_all.csv]]. The error message is [Access to the path '\\SEA\Shares\Ironclad-Flexera\Schema.ini' is denied.].Access to the path '\\SEA\Shares\Ironclad-Flexera\Schema.ini' is denied.

 

I am not able to locate Schema.ini file. We are using CSV file to feed Flexera with IronClad contract information.

Please can someone suggest the possible reason.

 

Thank You

Loveneesh

(5) Replies
jevans
By Level 7 Flexeran
Level 7 Flexeran

Good morning lsaxena, thanks for reaching out on the Community!

I believe a schema.ini outlines the data-structure for files such as CSVs.
I'm wondering if your issue may relate to the below Known Issue -- suggesting the Business Adapter removed the schema.ini?

https://community.flexera.com/t5/FlexNet-Manager-Suite-Known/Known-Issue-Running-a-business-adapter-deletes-the-schema-ini/ta-p/221164

Thank you @jevans 

Please can you check what i am doing wrong here. While executing its giving error"Import failed. Error: Incorrect syntax near ','."

 

Below is XML code

<?xml version="1.0" encoding="utf-8"?>
<root>
<ManageSoft connectiontype="default" runintransaction="False" />
<Imports>
<Import Type="CSV" Delimiter="Comma" Name="IronClad" Template="Custom Import" Enabled="True" ConnectionString="Provider=Microsoft.ACE.OLEDB.12.0;Data Source=\\SEA\Shares\Ironclad-Flexera;Extended Properties='text;HDR=Yes;FMT=FMT=Delimited(None)'" Query="select * from [flexera_records_all.csv]" FileName="\\SEA\Shares\Ironclad-Flexera\flexera_records_all.csv" TraceActions="created,deleted,updated,rejected" TraceFields="[Workflow ID]" Impersonate="false" Username="" Password="">
<Log Name="Log 1" Output="File" LogLevel="Information" Content="All" FileName="[DATE][TIME][IMPORT NAME].Log.txt" />
<Object Type="Contract" Name="Contract" Update="True" Create="True" OutputField="Contract_ID">
<Property Type="contractno" Name="Contract No" Update="Do not blank" ValueType="Field Value" Value="Workflow ID" UseForMatching="True" Length="60" />
<Property Type="contractname" Name="Contract Description" Update="Do not blank" ValueType="Field Value" Value="Contract Description" Length="100" />
<Property Type="contracttype" Name="Contract Type" Update="Do not blank" ValueType="Fixed Value" Value="Subscription" Length="1000" />
<Property Type="contractstatus" Name="Contract Status" Update="Do not blank" ValueType="Fixed Value" Value="Draft" Length="1000" />
<Property Type="startdate" Name="Start Date" Update="Do not blank" ValueType="Field Value" Value="Effective Date" DataType="Date" />
<Property Type="enddate" Name="Expiry Date" Update="Do not blank" ValueType="Field Value" Value="End Date" DataType="Date" />
<Property Type="totalvalue" Name="Global Amount" Update="Do not blank" ValueType="Field Value" Value="Contract Value (USD)" DataType="Float" />
</Object>
<Object Type="ComplianceResponsibility" Name="Contract Responsibility" Update="True" Create="True" OutputField="ContractResponsibility_ID" />
</Import>
</Imports>
</root>

Good afternoon Loveneesh,

No problems, thanks for coming back to me here.

I suspect the issue is your configuration - with the error being a bit unclear!
Looking at your quote above, you've configured:

TraceActions="created,deleted,updated,rejected"

But the Business Adapter documentation states:

Optional. Set what action(s) will be recorded in the detailed log stored in the target database. Valid values are:

Thank You @jevans It really work. You are AWESOM!! I can see the data is imported into FNMS.

However, some of the datafiles are missing and now its giving me another error.  I am sure, I am doing something wrong and need help please.

"Import failed. Error: The required property attribute, UseForMatching, must be set for the following objects: [Vendor]."

Below is the code :

<?xml version="1.0" encoding="utf-8"?>
<root>
<ManageSoft connectiontype="default" runintransaction="False" />
<Imports>
<Import Type="CSV" Delimiter="None" Name="IronClad" Template="Custom Import" Enabled="True" ConnectionString="Provider=Microsoft.ACE.OLEDB.12.0;Data Source=\\SEA\Shares\Ironclad-Flexera;Extended Properties='text;HDR=Yes;FMT=Delimited(FMT=None)'" Query="select * from [flexera_records_all.csv]" FileName="\\SEA\Shares\Ironclad-Flexera\flexera_records_all.csv" TraceActions="Creation,Deletion,Update,Rejected" TraceFields="[Workflow ID]" Impersonate="false" Username="" Password="">
<Log Name="Log 1" Output="File" LogLevel="Information" Content="All" FileName="[DATE][TIME][IMPORT NAME].Log.txt" />
<Object Type="Contract" Name="Contract" Update="True" Create="True" UpdateRule="RejectDuplicateRecords" OutputField="Contract_ID">
<Property Type="contractno" Name="Contract No" Update="Do not blank" ValueType="Field Value" Value="Workflow ID" UseForMatching="True" Length="60" />
<Property Type="contractname" Name="Contract Description" Update="Do not blank" ValueType="Field Value" Value="Contract Description" Length="100" />
<Property Type="contracttype" Name="Contract Type" Update="Do not blank" ValueType="Fixed Value" Value="Subscription" Length="1000" />
<Property Type="contractstatus" Name="Contract Status" Update="Do not blank" ValueType="Fixed Value" Value="Draft" Length="1000" />
<Property Type="startdate" Name="Start Date" Update="Do not blank" ValueType="Field Value" Value="Effective Date" DataType="Date" />
<Property Type="enddate" Name="Expiry Date" Update="Do not blank" ValueType="Field Value" Value="End Date" DataType="Date" />
<Property Type="totalvalue" Name="Global Amount" Update="Do not blank" ValueType="Field Value" Value="Contract Value (USD)" DataType="Float" />
<Property Type="contract_status" Name="Contract_Status" Update="Do not blank" ValueType="Fixed Value" Value="Continue" Length="2000" IsCustomField="True" />
<Property Type="totalvaluerateid" Name="Global Amount Currency Rate ID" Update="Do not blank" ValueType="Field Value" Value="RowNumber" DataType="Integer" />
<Property Type="vendorid" Name="Vendor ID" Update="Do not blank" ValueType="Field Value" Value="RowNumber" DataType="Integer" />
<Property Type="comments" Name="Comments" Update="Do not blank" ValueType="Fixed Value" Value="Source : IronClad " />
</Object>
<Object Type="Vendor" Name="Vendor" Update="True" Create="True" OutputField="Vendor_ID">
<Property Type="vendorname" Name="Name" Update="Do not blank" ValueType="Field Value" Value="Counterparty Name" Length="64" />
</Object>
<Object Type="ComplianceResponsibility" Name="Contract Responsibility" Update="True" Create="True" OutputField="ContractResponsibility_ID">
<Property Type="responsibilitytype" Name="Responsibility" Update="Do not blank" ValueType="Field Value" Value="Business Owner" Length="1000" />
</Object>
</Import>
</Imports>
</root>

Good afternoon Loveneesh,

Looking into the documentation for UseForMatching, we do see this value is Optional, but:
"For most import objects, you cannot save an existing adapter or create a new adapter without setting UseForMatching="True", or if defining import rules for attributes/properties using the UI without selecting the Use this property for matching existing data check box. If using the UI and do not select the check box but the chosen adapter requires it to be checked, then a warning message is displayed and you will not be able to save the new adapter until the issue is corrected."

https://docs.flexera.com/FlexNetManagerSuite2022R2/EN/BusnAdap/index.html#mgsbi/reference/Element-Property.html

My temptation would be to either select 'Use this property for matching existing data', or add 'UseForMatching="True"' on your Vendor object.

Kind regards and thanks,

Jack

 

Flexera Support