Mit Workflow+ können Sie ganz einfach automatisch den tagesaktuellen Kurs bei der EZB mit den Daten im büro+ abgleichen und ändern. Gerne stellen wir Ihnen unten ein Beispiel zur Verfügung, mit dem Sie es gleich selber versuchen können.
Declare lURL as String
Declare lTemp as String
Declare lXmlRoot as XmlElement
Declare lXmlDeviseCode as XmlElementList
Declare lIndex as Integer
Declare lKursFaktor as Decimal
Declare lISOCode as String
Declare lInfoText as String
Declare lTimeStamp as String
-- Statische Werte
lURL = "https://www.ecb.europa.eu/stats/eurofxref/eurofxref-daily.xml?GUID"
-- Daten abrufen
lTemp = HttpRequest(lURL, "", "xml", , , "GET")
lXmlRoot = XmlElementCreate(lTemp)
lXmlDeviseCode = XmlGetElementList(lXmlRoot, "Cube")
lTimeStamp = XmlGetAttribut(lXmlDeviseCode[1], "time")
For lIndex = 0 To MaxIndex(lXmlDeviseCode)
lTemp = XmlGetAttribut(lXmlDeviseCode[lIndex], "currency")
If XmlGetAttribut(lXmlDeviseCode[lIndex], "currency") = "USD" Then
lISOCode = "USD"
lKursFaktor = XmlGetAttribut(lXmlDeviseCode[lIndex], "rate")
lKursFaktor = Round(1 / lKursFaktor, 0.0001)
ExitFor
EndIf
Next
-- Eintragen
If not lKursFaktor = 0 Then
GetTable("Mandant", "Nr", "MandNr", GetBueroPlusMandant())
If GetTable("Mandant\FrW", "ISOBez", "ISOBez", lISOCode) Then
Mandant\FrW.BaWFak = lKursFaktor
Mandant\FrW.LtzDat = DateTimeFormat(DateTimeParse(lTimeStamp, "yyyy-MM-dd"), "dd.MM.yyyy")
-- Nur im Infofeld ablegen
lInfoText = DateTimeFormat(DateTimeParse(lTimeStamp, "yyyy-MM-dd"), "dd.MM.yyyy") + ": " + lKursFaktor
If not Contains(Mandant\FrW.Info, lInfoText) Then
Mandant\FrW.Info = lInfoText + cCrLf + Mandant\FrW.Info
EndIf
EndIf
-- Kurs auf BelegArt 119 nachtragen
If GetTable("Vorgang", "ArtBelegNr", "Art", 119) Then
Loop("Vorgang")
If Vorgang.Waehr = "USD" Then
Vorgang.FrWFak = 1
Vorgang.BaWFak = lKursFaktor
EndIf
EndLoop
EndIf
EndIf