Ej inloggad - Inloggning

Export av DI Office CRM-data

Bakgrund: Här följer instruktion för hur data tas ut ur di-office i syfte att importeras till ett annat program. Det finns två stycken exporter att beakta, Excel och SQL-data via script.

Exceldata direkt ur programmet

Detta är en allmän instruktion och gäller för följande register:
  • Uppgifter
  • Leverantörer
  • Medarbetare
  • Kontaktpersoner
  • Produkter
  • Orderunderlag
  • Offert
  • Order
  • Kunder (special)
  • Instruktion:
  1. Logga in i DI Office
  2. Välj register, om Kunder gå till special-instruktionen för KUNDER (nedan)
  3. I vyn för registret, högerklicka och välj ”Fältväljaren”
  4. Dra ut _ALLA_ fälten till rubrikerna så att tabellen innehåller all potentiell data
  5. Gå nu på hem och sedan excel och spara filen
  6. Gå till 2. och repetera för övriga register


Instruktion KUNDER:

  1. Logga in i DI Office
  2. Välj Kunder
  3. I vyn för registret, högerklicka och välj ”Fältväljaren”
  4. Dra ut _ALLA_ fälten till rubrikerna så att tabellen innehåller all potentiell data
  5. Gå nu på Kunder och sedan ”Expåort till excel” och välj en av valen för att spara:
  6. Repetera 5. för varje variant

  • Alla filer som sparats kan med fördel lagras i en och samma mapp
  • Filerna är semikolon-separerade (.csv).
  • Man kan öppna filerna i excel och spara dom som tabb-separerade (.txt) om man så önskar.
  • Sedan kan man enkelt zippa för att sändas till mottagare.

SQL-data via script

Ta ut övriga data via script ur sql-databasen
  1. Kopiera nedanstående till en fil och namnge den crm_export.ps1
  2. Kör i kommandoprompt powershell och sedan "Set-ExecutionPolicy RemoteSigned" för tillåtelse att köra detta script.
  3. Korrigera $DocsPath
  4. Korrigera $SqlConnection.ConnectionString.
  5. Kör scriptet genom att högerklicka och "Run with PowerShell"

$DocsPath="C:\Data\Export\"
$SqlQuery = "select AktorRolle.Alfasok as S1KundNr, Rotkatalog+URL as Path, emne as Rubrik, DokumentGruppe.Navn AS Dokumentgrupp, DF.Navn AS Författare, ISNULL(DM.Navn, '') AS Mottagare,* from Kunde inner join AktorRolle ON  AktorRolle.OBJECTID =  Kunde.OBJECTID 
inner join DokumentAktor ON DokumentAktor.OBJECTID = AktorRolle.DokumentAktorID 
inner join A_DokumentAktor_Dokument ON A_DokumentAktor_Dokument.DokumentAktorID = DokumentAktor.OBJECTID 
inner join Dokument ON A_DokumentAktor_Dokument.DokumentID = Dokument.OBJECTID 
inner join DokumentMappe ON DokumentMappe.OBJECTID = DokumentAktor.DokumentMappeID 
inner join CustomDokument ON CustomDokument.OBJECTID = Dokument.OBJECTID 
inner join DokumentGruppe ON DokumentGruppe.OBJECTID = CustomDokument.FDokumentGruppeID
left outer join DokumentAktor DF ON DF.OBJECTID = Dokument.FForfatterID 
left outer join DokumentAktor DM ON DM.OBJECTID = Dokument.FMottakerID
"
$SqlConnection = New-Object System.Data.SqlClient.SqlConnection
$SqlConnection.ConnectionString = "Data Source=sqlserver\sqlinstancename;Initial Catalog=dioffice;uid=sa;pwd=sapassword"
$SqlCmd = New-Object System.Data.SqlClient.SqlCommand
$SqlCmd.CommandText = $SqlQuery
$SqlCmd.Connection = $SqlConnection
$SqlAdapter = New-Object System.Data.SqlClient.SqlDataAdapter
$SqlAdapter.SelectCommand = $SqlCmd
$DataSet = New-Object System.Data.DataSet
$nRecs = $SqlAdapter.Fill($DataSet)
$nRecs | Out-Null
#Populate Hash Table
$objTable = $DataSet.Tables[0]
#Export Hash Table to CSV File
$DocPath=$DocsPath+"docs_per_customer.csv"
$objTable | Export-CSV -path $DocPath -Delimiter "`t" -Encoding UTF8 -NoTypeInformation
(Get-Content $DocPath) | % {$_ -replace '"', ""} | out-file -FilePath $DocPath -Force -Encoding UTF8


$SqlQuery = "select AR.Alfasok as S1KundNr, AktorRolle.Alfasok as Kontakt, Rotkatalog+URL as Path, emne as Rubrik, * from BusinessKontakt " +
"inner join AktorRolle ON  AktorRolle.OBJECTID =  BusinessKontakt.OBJECTID " +
"inner join kunde on kunde.OBJECTID = BusinessKontakt.FKundeID "+
"inner join AktorRolle AR ON Kunde.OBJECTID = AR.OBJECTID "+
"inner join DokumentAktor ON DokumentAktor.OBJECTID = AktorRolle.DokumentAktorID "+
"inner join A_DokumentAktor_Dokument ON A_DokumentAktor_Dokument.DokumentAktorID = DokumentAktor.OBJECTID "+
"inner join Dokument ON A_DokumentAktor_Dokument.DokumentID = Dokument.OBJECTID "+
"inner join DokumentMappe ON DokumentMappe.OBJECTID = DokumentAktor.DokumentMappeID "+
"inner join CustomDokument ON CustomDokument.OBJECTID = Dokument.OBJECTID"
$SqlCmd.CommandText = $SqlQuery
$SqlAdapter.SelectCommand = $SqlCmd
$DataSet = New-Object System.Data.DataSet
$nRecs = $SqlAdapter.Fill($DataSet)
$nRecs | Out-Null
$objTable = $DataSet.Tables[0]
$DocPath=$DocsPath+"doc_per_contact.csv"
$objTable | Export-CSV -path $DocPath -Delimiter "`t" -Encoding UTF8 -NoTypeInformation
(Get-Content $DocPath) | % {$_ -replace '"', ""} | out-file -FilePath $DocPath -Force -Encoding UTF8

$SqlQuery = "select AR.Alfasok as S1KundNr, AktorRolle.Alfasok as Kontakt, Notat.Dato as Datum, REPLACE(notat.tekst,char(13)+char(10),' ') as Text from BusinessKontakt "+
"inner join AktorRolle ON  AktorRolle.OBJECTID =  BusinessKontakt.OBJECTID "+
"inner join kunde on kunde.OBJECTID = BusinessKontakt.FKundeID "+
"inner join AktorRolle AR ON Kunde.OBJECTID = AR.OBJECTID "+
"inner join A_Notat_AktorRolle ON A_Notat_AktorRolle.AktorRolleID = AktorRolle.OBJECTID "+
"inner join Notat ON Notat.OBJECTID = A_Notat_AktorRolle.NotatID"
$SqlCmd.CommandText = $SqlQuery
$SqlAdapter.SelectCommand = $SqlCmd
$DataSet = New-Object System.Data.DataSet
$nRecs = $SqlAdapter.Fill($DataSet)
$nRecs | Out-Null
$objTable = $DataSet.Tables[0]
$DocPath=$DocsPath+"activity_per_contact.csv"
$objTable | Export-CSV -path $DocPath -Delimiter "`t" -Encoding UTF8 -NoTypeInformation
#(Get-Content $DocPath) | % {$_ -replace '"', ""} | out-file -FilePath $DocPath -Force -Encoding UTF8

$SqlQuery = "select AktorRolle.Alfasok as S1KundNr,Notat.Dato as Datum,REPLACE(notat.tekst,char(13)+char(10),' ') as Text from Kunde "+
"inner join AktorRolle ON  AktorRolle.OBJECTID =  Kunde.OBJECTID "+
"inner join A_Notat_AktorRolle ON A_Notat_AktorRolle.AktorRolleID = AktorRolle.OBJECTID "+
"inner join Notat ON Notat.OBJECTID = A_Notat_AktorRolle.NotatID"
$SqlCmd.CommandText = $SqlQuery
$SqlAdapter.SelectCommand = $SqlCmd
$DataSet = New-Object System.Data.DataSet
$nRecs = $SqlAdapter.Fill($DataSet)
$nRecs | Out-Null
$objTable = $DataSet.Tables[0]
$DocPath=$DocsPath+"activity_per_customer.csv"
$objTable | Export-CSV -path $DocPath -Delimiter "`t" -Encoding UTF8 -NoTypeInformation
#(Get-Content $DocPath) | % {$_ -replace '"', ""} | out-file -FilePath $DocPath -Force -Encoding UTF8


$SqlQuery = "select AktorRolle.Alfasok as S1KundNr, Rotkatalog+URL as Path, emne as Rubrik, DokumentGruppe.Navn AS Dokumentgrupp, DF.Navn AS Författare, ISNULL(DM.Navn, '') AS Mottagare,* "+
"from Leverandor inner join AktorRolle ON  AktorRolle.OBJECTID =  Leverandor.OBJECTID "+
"inner join DokumentAktor ON DokumentAktor.OBJECTID = AktorRolle.DokumentAktorID "+
"inner join A_DokumentAktor_Dokument ON A_DokumentAktor_Dokument.DokumentAktorID = DokumentAktor.OBJECTID "+
"inner join Dokument ON A_DokumentAktor_Dokument.DokumentID = Dokument.OBJECTID "+
"inner join DokumentMappe ON DokumentMappe.OBJECTID = DokumentAktor.DokumentMappeID "+
"inner join CustomDokument ON CustomDokument.OBJECTID = Dokument.OBJECTID "+
"inner join DokumentGruppe ON DokumentGruppe.OBJECTID = CustomDokument.FDokumentGruppeID "+
"left outer join DokumentAktor DF ON DF.OBJECTID = Dokument.FForfatterID "+
"left outer join DokumentAktor DM ON DM.OBJECTID = Dokument.FMottakerID"
$SqlCmd.CommandText = $SqlQuery
$SqlAdapter.SelectCommand = $SqlCmd
$DataSet = New-Object System.Data.DataSet
$nRecs = $SqlAdapter.Fill($DataSet)
$nRecs | Out-Null
$objTable = $DataSet.Tables[0]
$DocPath=$DocsPath+"doc_per_supplier.csv"
$objTable | Export-CSV -path $DocPath -Delimiter "`t" -Encoding UTF8 -NoTypeInformation
#(Get-Content $DocPath) | % {$_ -replace '"', ""} | out-file -FilePath $DocPath -Force -Encoding UTF8

$SqlQuery = "select AktorRolle.Alfasok as S1KundNr,Notat.Dato as Datum,REPLACE(notat.tekst,char(13)+char(10),' ') as Text from Leverandor "+
"inner join AktorRolle ON  AktorRolle.OBJECTID =  Leverandor.OBJECTID "+
"inner join A_Notat_AktorRolle ON A_Notat_AktorRolle.AktorRolleID = AktorRolle.OBJECTID "+
"inner join Notat ON Notat.OBJECTID = A_Notat_AktorRolle.NotatID"
$SqlCmd.CommandText = $SqlQuery
$SqlAdapter.SelectCommand = $SqlCmd
$DataSet = New-Object System.Data.DataSet
$nRecs = $SqlAdapter.Fill($DataSet)
$nRecs | Out-Null
$objTable = $DataSet.Tables[0]
$DocPath=$DocsPath+"activity_per_supplier.csv"
$objTable | Export-CSV -path $DocPath -Delimiter "`t" -Encoding UTF8 -NoTypeInformation
#(Get-Content $DocPath) | % {$_ -replace '"', ""} | out-file -FilePath $DocPath -Force -Encoding UTF8

$SqlQuery = "select AktorRolle.Alfasok as LevId, LK.Fnavn as Namn, ISNULL(Stilling.fnavn,'') AS Befattning, LK.Telefon As Telefon2, "+
"LK.TelefonArbeid as Telefon, LK.TelefonMobil As Mobiltelefon, LK.Postadresse1 As Adress1, lk.PostAdresse2 as Adress2, "+
"LK.Epost1, lk.Epost2, AktorRolle.FNavn AS Företag from Leverandor "+
"inner join AktorRolle ON  AktorRolle.OBJECTID =  Leverandor.OBJECTID "+
"inner join BusinessKontakt ON FLeverandorID = AktorRolle.OBJECTID "+
"inner join AktorRolle LK ON BusinessKontakt.OBJECTID = LK.OBJECTID "+
"left outer join Stilling ON BusinessKontakt.StillingId = Stilling.Objectid order by lk.FNavn"
$SqlCmd.CommandText = $SqlQuery
$SqlAdapter.SelectCommand = $SqlCmd
$DataSet = New-Object System.Data.DataSet
$nRecs = $SqlAdapter.Fill($DataSet)
$nRecs | Out-Null
$objTable = $DataSet.Tables[0]
$DocPath=$DocsPath+"contact_per_supplier.csv"
$objTable | Export-CSV -path $DocPath -Delimiter "`t" -Encoding UTF8 -NoTypeInformation
#(Get-Content $DocPath) | % {$_ -replace '"', ""} | out-file -FilePath $DocPath -Force -Encoding UTF8