Jump to content

BastiFantasti

Members
  • Gesamte Inhalte

    3
  • Registriert seit

  • Letzter Besuch

Fortschritt von BastiFantasti

Rookie

Rookie (2/14)

  • Eine Woche dabei
  • Einen Monat dabei
  • Erste Antwort
  • Erster eigener Beitrag

Neueste Abzeichen

0

Reputation in der Community

  1. Leider kommt bei mir immer der folgende Fehlercode: S C:\Users\sebastian.ruebbelke> $ledger = [xml](Get-Content T:\teststammdaten\xml\Rechnungsdaten_*.xml) $ledger.LedgerImport.consolidate.accountsReceivableLedger.ForEach({$_.exchangeRate='H'}) $ledger.Save("c:\temp\ledger-processed.xml") Der Wert "System.Object[]" kann nicht in den Typ "System.Xml.XmlDocument" konvertiert werden. Fehler: "Unerwartete XML-Deklaration. Die XML-Deklaration muss der erste Knoten im Dokument sein. Davor sind keine Leerzeichen zulässig. Zeile 24, Position 3." In Zeile:1 Zeichen:1 + $ledger = [xml](Get-Content T:\teststammdaten\xml\Rechnungsdaten_*.xm ... + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + CategoryInfo : InvalidArgument: (:) [], RuntimeException + FullyQualifiedErrorId : InvalidCastToXmlDocument Es ist nicht möglich, eine Methode für einen Ausdruck aufzurufen, der den NULL hat. In Zeile:3 Zeichen:1 + $ledger.Save("c:\temp\ledger-processed.xml") + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + CategoryInfo : InvalidOperation: (:) [], RuntimeException + FullyQualifiedErrorId : InvokeMethodOnNull PS C:\Users\sebastian.ruebbelke> $ledger = [xml](Get-Content T:\teststammdaten\xml\Rechnungsdaten_209018.xml) $ledger.LedgerImport.consolidate.accountsReceivableLedger.ForEach({$_.exchangeRate='H'}) $ledger.Save("c:\temp\ledger-processed.xml") PS C:\Users\sebastian.ruebbelke>
  2. ich komme irgendwie nicht mit den root, child subchild zurecht. Mein Ansatz war ja der folgende, den habe ich mir aus diversen Forenbeitragen zusammengebastelt.... $werte = @{'1.00000'='S';'B'='H'} $files = gci "T:\teststammdaten\xml\*.xml" $files | %{ $xml = [xml](gc $_.Fullname) $werte.GetEnumerator() | %{ $exchangeRate = $xml.LedgerImport.consolidate.accountPayableLegder.exchangeRate if ($exchangeRate -eq $_.Name){ $xml.LedgerImport.consolidate.accountPayableLegder.exchangeRate = $_.Value } } $xml.Save($_.Fullname) }
  3. Hi @all, ich bin neu hier im Forum und ein absoluter Beginner im Thema Scripting und Powershell. Einfach Sachen bekomme ich noch hin, aber bei diesem Thema brauche ich mal die Hilfe der Community. Ich versuche mich kurz zu fassen, allerdings ist das Thema ein bisschen umfangreich. Ich hoffe ihr könnt mir bei der Lösung helfen. Ich habe schon gefühlt tausende Beiträge in allerlei Foren gelesen und mich daran versucht, allerdings war das nicht von Erfolg gekrönt. ich hab halt von xml gar keine Ahnung und bei Powershell bin ich blutiger Anfänger. Ich habe zwei typen von XML Dateien, einmal die Payable für Eingangsrechnungen und einmal receivable für Ausgangsrechnungen. Diese werden bei einem Export aus unserem WaWi Programm erzeugt. Nun sollen diese Dateien in ein anderes Programm zur Weiterverarbeitung eingelesen werden. Allerdings benötigt dieses Programm die Saldokennzeichen S und H. An welcher Stelle ist egal, das kann ich beim Import definieren. Es kann auch eine zusätzliche Node hinzugefügt werden. Meine Idee war nun, das ich mit einem Script die xml öffne, eine node in der xml welche ich nicht brauche in S oder H ändere. Es handelt sich dabei um die Zeile <exchangeRate>1.000000</exchangeRate> hier müsste nur der Wert 1.000000 abgeändert werden in S und H. Und zwar bei Payable in S und bei receivable in H. Anbei zwei Beispiel xml Dateien., Vielleicht hat ja einer die zündende Idee für mich. Ich habe auch zwei Testdateien angehangen, da in den CodeTags die Strucktur der xml verloren geht. Die Dateien liegen immer in einem bestimmten Ordner mit der Namensstruktur Rechnungsdaten*.xml. Die Dati muss zwingend nach dem abspeichern den selben Namen behalten. Für Receiveable <?xml version="1.0" encoding="utf-8"?> <LedgerImport xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema" version="5.0" generator_info="c-entron software gmbh" xml_data="Kopie nur zur Verbuchung berechtigt nicht zum Vorsteuerabzug" xsi:schemaLocation="http://xml.datev.de/bedi/tps/ledger/v050" Belegverwaltung_online_ledger_import_v050.xsd" xmlns="http://xml.datev.de/bedi/tps/ledger/v050;>" <consolidate consolidatedAmount="121.50" consolidatedDate="2022-06-07" consolidatedInvoiceId="470985" consolidatedCurrencyCode="EUR"> <accountsReceivableLedger> <date>2022-06-07</date> <amount>59.50</amount> <accountNo>8404</accountNo> <costCategoryId>1</costCategoryId> <tax>19.00</tax> <currencyCode>EUR</currencyCode> <invoiceId>470985</invoiceId> <bookingText>Testikowsi - 470985</bookingText> <partyId>46208</partyId> <internalInvoiceId>470985</internalInvoiceId> <exchangeRate>1.000000</exchangeRate> <dueDate>2022-06-07</dueDate> <bpAccountNo>46208</bpAccountNo> <customerName>Testikowsi </customerName> </accountsReceivableLedger> <accountsReceivableLedger> <date>2022-06-07</date> <amount>62.00</amount> <accountNo>8401</accountNo> <costCategoryId>1</costCategoryId> <tax>19.00</tax> <currencyCode>EUR</currencyCode> <invoiceId>470985</invoiceId> <bookingText>Testikowsi - 470985</bookingText> <partyId>46208</partyId> <internalInvoiceId>470985</internalInvoiceId> <exchangeRate>1.000000</exchangeRate> <dueDate>2022-06-07</dueDate> <bpAccountNo>46208</bpAccountNo> <customerName>Testikowsi </customerName> </accountsReceivableLedger> </consolidate> </LedgerImport> Für Payable <?xml version="1.0" encoding="utf-8"?> <LedgerImport xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema" version="5.0" generator_info="c-entron software gmbh" xml_data="Kopie nur zur Verbuchung berechtigt nicht zum Vorsteuerabzug" xsi:schemaLocation="http://xml.datev.de/bedi/tps/ledger/v050" Belegverwaltung_online_ledger_import_v050.xsd" xmlns="http://xml.datev.de/bedi/tps/ledger/v050;>" <consolidate consolidatedAmount="121.87" consolidatedDate="2022-06-08" consolidatedInvoiceId="964419092" consolidatedCurrencyCode="EUR"> <accountsPayableLedger> <date>2022-06-08</date> <amount>121.87</amount> <accountNo>3401</accountNo> <costCategoryId>1</costCategoryId> <tax>19.00</tax> <currencyCode>EUR</currencyCode> <invoiceId>964419092</invoiceId> <bookingText>Also Deutschland GmbH - 209439</bookingText> <partyId>70202</partyId> <internalInvoiceId>209439</internalInvoiceId> <exchangeRate>1.000000</exchangeRate> <dueDate>2022-07-08</dueDate> <bpAccountNo>70202</bpAccountNo> <supplierName>Also Deutschland GmbH</supplierName> <supplierCity>Soest</supplierCity> </accountsPayableLedger> </consolidate> </LedgerImport> Ich hoffe ihr könnt helfen Grüße Basti Rechnungsdaten_209020.xml Rechnungsdaten_209021.xml
×
×
  • Neu erstellen...