Evolve: Sage 50 Documentation - Evolve Project Specific
First, login to your existing Sage Developer account or sign up for one.
Also login to your existing Sage Business Cloud Accounting account or sign up for a free trial.
Setup your Scoro App within Cyclr:
Enter the following values:
Client ID: The client ID that we retrieved from the app that we made.
Client Secret: The secret that we retrieved from the app that we made.
Your Sage 50 Connector is now setup! You can test it by installing it in one of your Cyclr accounts and executing one of the methods to confirm it can return some data.
$results = Select-Sage50UK -Connection $conn -Table "TradingAccounts" -Columns @("TradingAccountUUID, Name") -Where "TradingAccountUUID='c2ef66a5-a545-413b-9312-79a53caadbc4'"
PS C:\> $conn = Connect-Sage50UK -URL 'http://localhost:5493/sdata/accounts50/GCRM/{C4C863BE-B098-4A7D-A78B-D7A92B8ADB59}' -User 'Manager' -Password 'xxxxxx'
PS C:\> $row = Select-Sage50UK -Connection $conn -Table "TradingAccounts" -Columns (TradingAccountUUID, Name) -Where "TradingAccountUUID = 'c2ef66a5-a545-413b-9312-79a53caadbc4'" | select -first 1
PS C:\> $row | ConvertTo-Json
{
"Connection": {
},
"Table": "TradingAccounts",
"Columns": [
],
"TradingAccountUUID": "MyTradingAccountUUID",
"Name": "MyName"
}
Select-Sage50UK -Connection $conn -Table TradingAccounts -Where "TradingAccountUUID = 'c2ef66a5-a545-413b-9312-79a53caadbc4'" | Remove-Sage50UK
Import-Csv -Path C:\MyTradingAccountsUpdates.csv | %{
$record = Select-Sage50UK -Connection $conn -Table TradingAccounts -Where ("TradingAccountUUID = `'"+$_.TradingAccountUUID+"`'")
if($record){
Update-Sage50UK -Connection $conn -Table TradingAccounts -Columns @("TradingAccountUUID","Name") -Values @($_.TradingAccountUUID, $_.Name) -Where "TradingAccountUUID = `'$_.TradingAccountUUID`'"
}else{
Add-Sage50UK -Connection $conn -Table TradingAccounts -Columns @("TradingAccountUUID","Name") -Values @($_.TradingAccountUUID, $_.Name)
}
}
The only known project to use Connect with the Sage 50 system is Evolve. Documentation is Evolve specific, and may or may not be Connect Specific. Sage 50 Documentation - Evolve Project Specific
WORK IN PROGRESS
Sage 50 may additionally require .NET Framework (4.6/4.7/etc)
Whatever projects you write have to run on same box as Sage
The DLLs reference directly from the machine
Not everything is exposed to the C# API - there may be workarounds to make certain things work, but it’s hard to say.
Run Satellite on the same box as Sage
Satellite/Connect agent runs as a windows service which uses gRPC
Generally speaking, Satellite should not handle any business logic. It should exclusively act as a way to read and write with Sage. Any special integration logic should remain on the Connect side where possible.
Structurally, the syncs should call into an Integration Service for Sage. The Integration service will handle creating the gRPC channel and service and calling the Satellite endpoints. Satellite would then simply do whatever CRUD action is requested of it and return the result with as little extra work as possible so it remains mostly a passthrough to Sage.
Callout
If the SData configuration window is closed and reopened but the Enable HTTPS option is not enabled, this is most likely caused by the Sage.SData.Service.exe.config file not being updated properly. Follow the steps below to use the alternate configuration file below.
You will need the certificate thumbprint. Note that the thumbprint data includes spaces. The thumbprint data can be obtained using Windows services. You can also access the thumbprint in the SData configuration window:
Use this value in theCertificateLookupValuesetting in the configuration file. For example:\
<?xml version="1.0" encoding="utf-8" ?>
<configuration>
<configSections>
<sectionGroup name="applicationSettings" type="System.Configuration.ApplicationSettingsGroup, System, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" >
<section name="Sage.SData.Service.Properties.Settings" type="System.Configuration.ClientSettingsSection, System, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" requirePermission="false" />
<section name="Sage.Integration.Server.Properties.Settings" type="System.Configuration.ClientSettingsSection, System, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" requirePermission="false" />
<section name="Sage.Common.Syndication.Properties.Settings" type="System.Configuration.ClientSettingsSection, System, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" requirePermission="false" />
</sectionGroup>
</configSections>
<applicationSettings>
<Sage.SData.Service.Properties.Settings>
<setting name="DigestTimeout" serializeAs="String">
<value>12000000000</value>
</setting>
<setting name="EnableBasicAuthentication" serializeAs="String">
<value>True</value>
</setting>
<setting name="WebAppPath" serializeAs="String">
<value />
</setting>
<setting name="EnableSSL" serializeAs="String">
<value>True</value>
</setting>
<setting name="Port" serializeAs="String">
<value>443</value>
</setting>
</Sage.SData.Service.Properties.Settings>
<Sage.Integration.Server.Properties.Settings>
<setting name="EnableBroadcast" serializeAs="String">
<value>False</value>
</setting>
</Sage.Integration.Server.Properties.Settings>
<Sage.Common.Syndication.Properties.Settings>
<setting name="IPAddress" serializeAs="String">
<value />
</setting>
<setting name="Server" serializeAs="String">
<value>sdata</value>
</setting>
<setting name="EnableSSLPort" serializeAs="String">
<value>True</value>
</setting>
<setting name="Port" serializeAs="String">
<value>5493</value>
</setting>
<setting name="SettingsProviderType" serializeAs="String">
<value>Sage.Common.Syndication.ConfigurationSyndicationSettings, Sage.Common.Syndication</value>
</setting>
<setting name="PathPrefix" serializeAs="String">
<value />
</setting>
<setting name="DoNotUseRegistry" serializeAs="String">
<value>False</value>
</setting>
<setting name="EnableStandardPort" serializeAs="String">
<value>True</value>
</setting>
<setting name="SSLPort" serializeAs="String">
<value>5494</value>
</setting>
<setting name="CertificateLookupValue" serializeAs="String">
<value>ENTER YOUR CERTIFICATE THUMBPRINT HERE</value>
</setting>
<setting name="CertificateLookupType" serializeAs="String">
<value>Thumbprint</value>
</setting>
</Sage.Common.Syndication.Properties.Settings>
</applicationSettings>
</configuration>
Phase 2