Auf der Registerkarte Dokumente geben Sie die zu Grunde liegenden Einstellungen ein, die erforderlich sind, wenn Sie mit Dokumentenverwaltung arbeiten. Mit Dokumentenverwaltung verknüpfen Sie Dokumente wie Zeichnungen mit Kunden, Lieferanten, Kundenaufträgen, Plan- und Fertigungsaufträgen usw., so dass Sie an der richtigen Stelle zur Verfügung stehen.
Dokumentenmanagementsystem vorhanden
Wenn das Feld Dokumentenmanagementsystem vorhanden aktiviert ist, geht das System davon aus, dass ein externes Dokumentenmanagementsystem vorhanden ist. Wenn Sie ein mit Isah verknüpftes Dokumentenmanagementsystem anwenden, führen Sie die Dokumentenverwaltung in diesem Paket aus. Im Dokumentenmanagementsystem ändern oder löschen Sie also Dokumentendaten. In Isah verknüpfen Sie die Dokumente und führen Sie mit Scripts im Menü Bearbeiten Verarbeitungen aus, wie das Öffnen des Dokuments in Isah.
Wenn das Feld aktiviert ist, können Sie im Fenster Dokumente keine Dokumente mehr hinzufügen, ändern oder löschen.
Automatische Dokumentenregistrierung bei Eingabe Dokumentenverknüpfung
Für eine schnelle Dokumentenregistrierung aktivieren Sie das Feld Automatische Dokumentenregistrierung bei Eingabe Dokumentenverknüpfung. Wenn Sie mit schneller Dokumentenregistrierung arbeiten, wird das Dokument automatisch registriert, wenn Sie das Dokument verknüpfen.
Dieses Feld ist nicht aktiviert, wenn Sie mit einem Dokumentenmanagementsystem arbeiten oder wenn Sie Dokumente zentral im Register erfassen möchten, bevor Sie sie mit Datensätzen verknüpfen. Wenn Sie mit zentraler Verwaltung von Dokumenten arbeiten, registrieren Sie ein Dokument einmalig im Fenster Dokumente und verknüpfen das Dokument danach auf einfache Weise mit allen Datensätzen, zu dem das Dokument gehört.
Dokumentenregistrierung beim Löschen der letzten Verknüpfung löschen
Mit dem Feld Dokumentenregistrierung löschen beim Löschen der letzten Dokumentenverknüpfung vereinfachen Sie den Vorgang zum Löschen von Dokumenten aus Isah. Wenn dieses Feld aktiviert ist und Sie die letzte Verknüpfung zu einem Dokument löschen, wird die Registrierung des Dokuments automatisch rückgängig gemacht. Wenn dieses Feld nicht aktiviert ist, müssen Sie den Löschvorgang in zwei Schritten durchführen: Zuerst löschen Sie die Verknüpfung und anschließend löschen Sie das Dokument.
Wenn Sie Dokumente zentral registrieren, ist es möglich, Benutzern zwar die Rechte zum Verknüpfen und zum Aufheben der Verknüpfung der Dokumente zuzuweisen, aber nicht zu deren Verwaltung. In einem solchen Fall muss das Feld deaktiviert sein, denn sonst löschen Benutzer zusammen mit der letzten Verknüpfung auch das Dokument selbst.
Wenn die Einstellung aktiviert ist, werden die letzte Verknüpfung und das Dokument selbst gelöscht, wenn die folgenden Bedingungen erfüllt wurden:
Etwaige Dokumentenrechte, die dem Dokument zuerkannt wurden, haben keinen Einfluss auf das Löschen des Dokuments. Die Registrierung wird einschließlich der Rechte gelöscht.
Hier geben Sie den Hauptordner an, in dem die Dateien gespeichert werden, die erstellt wurden, nachdem die Verarbeitung Dokumente versenden, die Nutzung von Outlook Add-in oder das Hinzufügen von Dokumenten in Isah MFS ausgeführt wurden.
Wenn Sie dieses Feld aktivieren, wird beim Speichern von Dokumenten über die Funktion Dokumente versenden und die Outlook Add-In ein separater Unterordner für die unterschiedlichen Entitäten erstellt, um die es sich handeln kann. Entitäten sind die Isah-Daten, mit denen ein Dokument verknüpft werden kann, wie ein Kunde, eine EK-Rechnung, ein Artikel, ein Mitarbeiter usw. Unter dem Hauptordner wird beispielsweise ein Unterordner angezeigt, wie „Kunden“ oder „Artikel“, unter dem in Isah die Dokumente mit dem entsprechenden Entitätstyp gespeichert werden.
Dieses Feld ist auch relevant für die Steuerung von Ordnern für Dokumente in Isah Mobile Field Service. Wenn Sie dieses Feld aktivieren, werden in Isah die unterzeichneten Serviceaufträge und sonstigen Dokumente pro Fertigungsauftrag gespeichert.
Wenn Dokumente gespeichert werden, beispielsweise unter der Funktion Dokumente versenden oder unter der Outlook-Add-In, werden automatisch ein Pfad und ein Dateiname erstellt, wenn diese eingestellt wurden. Mit einem Script können Sie ggf. andere Dateinamen oder eine andere Einteilung in Dokumenten hantieren, so wie nachstehend anhand des Beispielscripts illustriert wird. Damit können Sie beispielsweise Rechnungen in unterschiedlichen Sprachen anbieten und diese in separaten Ordern speichern.
Ein Script, das Sie hier angeben, erstellen Sie im Fenster Scripts.
Beispielscript
function BeforeProcessFileName(sOutputFileName, iEntityType, vId, sLangCode, sDocumentType)
rem The default OutputFileName has the following pattern:
rem <Base folder from settings>\<subfolder from document type>\<id>\<Filename>
rem Example: C:\IsahDocuments\Emails\AR014\Customer_AR014_20160901_09-45.msg
rem With this script we will create two extra subfolders, based on the description of the entity type
rem and the language. The original path+filename will only be used for the filename part
rem In case you need to know who called this script, check the value of
rem global property ScriptContext.ScriptContextType which can be sctExternalDocuments or sctOutlookAddIn
dim sBaseFolder, sDocumentTypeFolder, sEntityFolder, sLanguageFolder, sIdFolder, sTrailingFileName
sBaseFolder = GetSQLValue("SELECT DocRootFolder FROM dbo.T_Setting WHERE SettingCode = 1")
sDocumentTypeFolder = GetSQLValue("SELECT SubFolder FROM dbo.T_DocumentType WHERE DocumentTypeCode = N'" & sDocumentType & "'")
sLanguageFolder = GetLanguageFolderName(sLangCode)
sEntityFolder = GetEntityDescription(iEntityType, sLangCode)
sIdFolder = GetIdFolder(iEntityType, vId)
sTrailingFileName = GetFileName(sOutputFileName)
if (TrailingFileName = "") then
TrailingFileName = "Document.txt"
end if
BeforeProcessFileName = AddPathDelimiter(sBaseFolder) & _
AddPathDelimiter(sDocumentTypeFolder) & _
AddPathDelimiter(SanitizeFolderName(sEntityFolder)) & _
AddPathDelimiter(SanitizeFolderName(sLanguageFolder)) & _
AddPathDelimiter(SanitizeFolderName(sIdFolder)) & _
SanitizeFolderName(sTrailingFileName)
end function
function GetSQLValue(sSQL)
rem Get first value from SQL query
dim oQry
set oQry = IsahObjects.Get("TIsahCDSQuery")
oQry.DatabaseName = "dbisahadmin"
oQry.SQL.Text = sSQL
oQry.Open
GetSQLValue = oQry.Field(0).Value
oQry.Close
set oQry = nothing
end function
function GetFileName(sFileName)
rem Strip path from file name
set oFso = CreateObject("Scripting.FileSystemObject")
GetFileName = oFso.GetFileName(sFileName)
set oFso = nothing
end function
function AddPathDelimiter(sPath)
rem Make sure path ends with backslash
AddPathDelimiter = Trim(sPath)
if AddPathDelimiter <> "" and (Right(AddPathDelimiter, 1) <> "\") then
AddPathDelimiter = AddPathDelimiter & "\"
end if
end function
function SanitizeFolderName(sFileName)
rem Replace invalid characters
const sInvalidChars = "/:*?<>|"""
dim i
SanitizeFolderName = Trim(sFileName)
for i = 1 to Len(sInvalidChars)
SanitizeFolderName = Replace(SanitizeFolderName, Mid(sInvalidChars, i, 1), "_")
Next
end function
function GetLanguageFolderName(sLangCode)
rem Translate language code into description
iLangId = GetSQLValue("SELECT LangID FROM T_Language WHERE LangCode = N'" & sLangCode & "'")
select case iLangId
case 1
GetLanguageFolderName ="Nederlands"
case 2
GetLanguageFolderName ="Deutsch"
case 5
GetLanguageFolderName ="English"
case 11
GetLanguageFolderName ="Français"
case else
GetLanguageFolderName ="Miscellaneous"
end select
end function
function GetIdFolder(iEntityType, vId)
rem Translate technical key value to functional key value, where appropriate
dim arrKeys
select case iEntityType
case etSalesOffer
GetIdFolder = GetSQLValue("SELECT QuotNr FROM T_DossierMain WHERE DossierCode = '" & vId & "'")
case etSalesOrder
GetIdFolder = GetSQLValue("SELECT OrdNr FROM T_DossierMain WHERE DossierCode = '" & vId & "'")
case etSalesLine
arrKeys = Split(vId, "_")
arrKeys(0) = GetSQLValue("SELECT OrdNr FROM T_DossierMain WHERE DossierCode = '" & arrKeys(0) & "'")
GetIdFolder = Join(arrKeys, "_")
case etPurchaseOffer
GetIdFolder = GetSQLValue("SELECT PurQuotNr FROM T_PurchaseDocument WHERE PurDocCode = " & vId)
case etPurchaseOrder
GetIdFolder = GetSQLValue("SELECT PurOrdNr FROM T_PurchaseDocument WHERE PurDocCode = " & vId)
case else
GetIdFolder = CStr(vId)
end select
end function
function GetIsahTableDescription(iIsahTableId, sLangCode)
rem Get description of IsahTable
GetIsahTableDescription = GetSQLValue("SELECT T.Description FROM T_IsahTableML AS T INNER JOIN T_Language AS L ON (L.LangID = T.LangID) WHERE T.IsahTableId = " & iIsahTableId & " AND L.LangCode = N'" & sLangCode & "'")
if IsNull(GetIsahTableDescription) then
GetIsahTableDescription = GetSQLValue("SELECT T.Description FROM T_IsahTableML AS T INNER JOIN T_Language AS L ON (L.LangID = T.LangID) WHERE T.IsahTableId = " & iIsahTableId & " AND L.LangCode = N'" & Application.GetSetting("BasicLangCode") & "'")
end if
if IsNull(GetIsahTableDescription) then
GetIsahTableDescription = GetSQLValue("SELECT T.Description FROM T_IsahTableML AS T INNER JOIN T_Language AS L ON (L.LangID = T.LangID) WHERE T.IsahTableId = " & iIsahTableId & " AND L.LangCode = N'EN'")
end if
if IsNull(GetIsahTableDescription) then
GetIsahTableDescription = ""
end if
end function
function GetEntityDescription(iEntityType, sLangCode)
rem Get description of entity
dim iIsahTableId
select case iEntitytype
case etCustomer
iIsahTableId = 9
case etSupplier
iIsahTableId = 10
case etEmployee
iIsahTableId = 13
case etPart
iIsahTableId = 12
case etSalesOffer
iIsahTableId = 2
case etSalesOrder
iIsahTableId = 2
case etPurchaseOrder
iIsahTableId = 8
case etProject
iIsahTableId = 83
case etProductionOrder
iIsahTableId = 3
case etObject
iIsahTableId = 11
case etMessage
iIsahTableId = 15
case etSalesContract
iIsahTableId = 278
case etPurchaseOffer
iIsahTableId = 8
case etPurchaseContract
iIsahTableId = 332
case etServiceMessage
iIsahTableId = 454
case etServiceContract
iIsahTableId = 55
case etAction
iIsahTableId = 16
case etShippingNote
iIsahTableId = 58
case etProcessedShippingNote
iIsahTableId = 58
case etSalesInvoice
iIsahTableId = 59
case etPurchaseInvoice
iIsahTableId = 64
case etLotNumber
iIsahTableId = 299
case etCertificate
iIsahTableId = 290
case etCustomerContact
iIsahTableId = 172
case etSupplierContact
iIsahTableId = 160
case etPurchaseLinePart
iIsahTableId = 69
case etPurchaseLineEquipment
iIsahTableId = 65
case etPurchaseLineExtOperation
iIsahTableId = 66
case etSalesLine
iIsahTableId = 1
case etServiceContractVersion
iIsahTableId = 56
case etPurchaseReminder
rem There is no Purchase reminder table in Isah, so we link it to the Supplier
iIsahTableId = 10
case etShippingNoteExtOperation
iIsahTableId = 360
case else
iIsahTableId = 0
end select
if (iIsahTableId > 0) then
GetEntityDescription = GetIsahTableDescription(iIsahTableId, sLangCode)
else
GetEntityDescription = ""
end if
end function
Elektronische Kommunikation
Script für Festlegen Absender-ID
Wenn Sie Supply Chain Integrator anwenden, kann beim Import von elektronischen Meldungen automatisch ein Script gestartet werden, das den Inhalt der elektronischen Meldung ändert. Da beim Import einer neuen elektronischen Meldung in Isah noch nicht deutlich ist, von welchem Absender (Kunde oder Lieferant) die Meldung kommt, kann dann auch noch nicht nach einem kunden- oder lieferantenspezifischen Script gesucht werden. Im Feld Script für Festlegen Absender-ID geben Sie ein Script vor, das in der eingegangenen Meldung nach der Identifikation des Absenders der Meldung sucht. Danach wird Isah bei dem betreffenden Absender im Feld Transformationsscript (auf der Registerkarte Kommunikation vom Kunden oder Lieferanten) nach dem Script suchen, mit dem die Meldung geändert werden soll.
Ist dieses Feld leer, wird Isah beim Import einer elektronischen Meldung kein Script starten.
Bitte beachten Sie: Arbeiten Sie mit einem automatischen Webinterface, wird der SCI kein Script antreffen. Das Script wird nur abgerufen, wenn Meldungen über die Versandmethode „E-Mail“ empfangen und versendet werden.
Beispiel Aufbau Script
„Stammdaten: Festlegen des Absender-IDs eines eingehenden Dokuments
function GetSenderId(MessageType, FileName)
[script]
GetSenderId = [hier steht die SCSN-Identifikation des Absenders]
end function