damuchi
Goto Top

Suchen u. Ersetzen von XML-Tags (fortlaufende Nummerierung) per Batch oder Tool

Hallo allerseits

Ich bin auf der Suche nach einer Batchverarbeitung oder einem Tool, welches zum einen bestehende XML-Tags findet und diese so anpasst, dass von einem Startzähler aus ein Wert immer fortlaufend aufnummeriert wird.

Die XML-Datei sieht in etwa wie folgt aus:

<Connect>
   <Task>
      <Transaction>
          <Mitarbeiter-Nr.>105</Mitarbeiter-Nr.>
          ...
      </Transaction>
      <Transaction>
          <Mitarbeiter-Nr.>112</Mitarbeiter-Nr.>
          ...
      </Transaction>
      <Transaction>
          <Mitarbeiter-Nr.>115</Mitarbeiter-Nr.>
          ...
      </Transaction>
   </Task>
<Connect>

Der Aufbau der Mitarbeiternummer ist nicht regelmässig. Nun will ich alle XML-Tags mit <Mitarbeiter-Nr.>*xxx*</Mitarbeiter-Nr.> ersetzen durch einen fortlaufenden XML-Tag z.B. ab dem Startzähler 100.
Das würde also im obigen Beispiel heissen, aus dem XML-Tag <Mitarbeiter-Nr.>105</Mitarbeiter-Nr.> wird <Mitarbeiter-Nr.>100</Mitarbeiter-Nr.>, aus <Mitarbeiter-Nr.>112</Mitarbeiter-Nr.> wird <Mitarbeiter-Nr.>101</Mitarbeiter-Nr.> und aus <Mitarbeiter-Nr.>115</Mitarbeiter-Nr.> wird <Mitarbeiter-Nr.>102</Mitarbeiter-Nr.>.

Mit dem untenstehenden Test-Skript, weiss ich leider nicht, wie die Variable gesetzt werden muss, damit alle XML-Tags mit <Mitarbeiter-Nr.>*xxx*</Mitarbeiter-Nr.> gefunden und ersetzt werden können oder ob dies über eine Variable überhaupt möglich ist.

@ECHO off
SETLOCAL enabledelayedexpansion

:: Suchen und Ersetzen von XML-Tags

SET quell_datei=D:\test1.txt
SET ziel_datei=D:\test2.txt
SET /A z=100
SET "suchen_nach=<Mitarbeiter-Nr.>100</Mitarbeiter-Nr.>"
SET "ersetzen_durch=<Mitarbeiter-Nr.>200</Mitarbeiter-Nr.>"

:: Loeschen der Ausgabedatei, falls sie (noch) existiert
IF EXIST %ziel_datei% (DEL /f %ziel_datei% 1>NUL 2>NUL)

:: Quell-Datei zeilenweise auslesen
:: und in Variable "zeile" schreiben
FOR /f "delims=" %%i IN ('FINDSTR . "%quell_datei%"') DO (
SET zeile=%%i&& CALL :ersetzen !zeile!
)

GOTO :weiter
:ersetzen
:: innerhalb der Variable "zeile"
:: den Inhalt der Variable "suchen_nach" suchen
:: und diese durch den Inhalt der Variable "ersetzen_durch" ersetzen
SET /A z="z+1"
SET zeile=!zeile:%suchen_nach%=%ersetzen_durch%

:: Inhalt der Variable "zeile" in die Ausgabedatei schreiben
IF [!zeile!] EQU  (ECHO.>>%ziel_datei%) ELSE (ECHO !zeile!>>%ziel_datei%)
GOTO :eof

Mit dem Tool "Useful File Utilities" und dem Plug-In "Batch Replacer" können zwar mit dem Suchparameter <Mitarbeiter-Nr.>#*#</Mitarbeiter-Nr.> alle Felder mutiert werden, doch für die fortlaufende Nummerierung habe ich leider keine Möglichkeit gefunden.

Vielen Dank im Voraus für Eure Tipps und Hilfestellung!

Beste Grüsse

DaMuchi

Content-Key: 128409

Url: https://administrator.de/contentid/128409

Ausgedruckt am: 28.03.2024 um 22:03 Uhr

Mitglied: rubberman
rubberman 01.11.2009 um 22:29:07 Uhr
Goto Top
Hallo DaMuchi,

XML-Tags so zu maskieren, damit man mit ihnen vernünftig arbeiten kann, ist mit Batch immer ein Lotteriespiel. Habe hier auch Doppelmaskierungen vornehmen müssen, damit der FINDSTR Befehl das ganze gefressen hat.
@echo off &setlocal
set quell_datei=D:\test1.txt 
set ziel_datei=D:\test2.txt 
set /a z=100
type nul>"%ziel_datei%"  
for /f "delims=: tokens=1*" %%i in ('findstr /n "^" "%quell_datei%"') do set "Zeile=%%j" &call :sub  
pause
goto :eof

:sub
if not defined Zeile (
  >>"%ziel_datei%" echo.  
  goto :eof
)
set "Zeile=%Zeile:<=^^^<%"  
set "Zeile=%Zeile:>=^^^>%"  
set "Zeile=%Zeile:|=^^^|%"  
set "Zeile=%Zeile:&=^^^&%"  
echo %Zeile%|findstr /c:"Mitarbeiter-Nr">nul&&goto ersetzen  
set Zeile=%Zeile%
>>"%ziel_datei%" echo %Zeile%  
goto :eof
:ersetzen
set "Zeile=          ^<Mitarbeiter-Nr.^>%z%^</Mitarbeiter-Nr.^>"  
>>"%ziel_datei%" echo %Zeile%  
set /a z+=1
goto :eof

Grüße
rubberman
Mitglied: bastla
bastla 02.11.2009 um 02:14:02 Uhr
Goto Top
Hallo DaMuchi und willkommen im Forum!

Wie rubberman schon gezeigt hat, ist für diese Problemstellung Batch zwar verwendbar, aber nicht unbedingt erste Wahl - daher als Alternative ein VBScript:
Ein = "D:\test1.txt"  
Aus = "D:\test2.txt"  
'Suchbegriff im RegEx-Format, daher: Punkt maskieren und zu ersetzenden Teil (=Nummer) in Klammern setzen  
Such = "<Mitarbeiter-Nr\.>(\d+)</Mitarbeiter-Nr\.>"  
N = 100 'Startwert für neue Nummerierung  

Set fso = CreateObject("Scripting.FileSystemObject")  
T1 = fso.OpenTextFile(Ein).ReadAll

Set rE = New RegExp
rE.Pattern = Such
rE.IgnoreCase = True
rE.Global = True

SP = 1 'Startposition im String  
For Each M In rE.Execute(T1)
    P = M.FirstIndex + M.Length + 1 'Endposition des die Fundstelle enthaltenden Teilstrings  
     'im gefundenen Teilstring (des Originaltextes) die bisherige Nummer ersetzen und zum neuen Text hinzufügen  
    T2 = T2 & Replace(Mid(T1, SP, P - SP), M.SubMatches(0), N, 1, 1)
    N = N + 1
    SP = P 'Startposition = vorige Endposition  
Next
T2 = T2 & Mid(T1, SP) 'den Teil nach der letzten Fundstelle auch noch mitnehmen  
fso.CreateTextFile(Aus, True).Write T2

Zur (oberflächlichen) Kontrolle des Ergebnisses darf's dann wieder Batch sein:
findstr /v /g:D:\test2.txt D:\test1.txt
findstr /v /g:D:\test1.txt D:\test2.txt
(oder per "fc").

Grüße
bastla
Mitglied: 76109
76109 02.11.2009 um 09:50:23 Uhr
Goto Top
Hallo zusammen!

Hier noch ne VB-Script-Variante (*.vbs) face-wink

Const StartNum = 100

Const eFile = "D:\Eingabe.Txt"  
Const aFile = "D:\Ausgabe.Txt"  

Const Tag1 = "<Mitarbeiter-Nr.>"  
Const Tag2 = "</Mitarbeiter-Nr.>"  


Dim RE, Fso, File, Text, Tag, i

Set RE = New RegExp:  i = StartNum 

Set Fso = CreateObject("Scripting.FileSystemObject")  

With RE
   .Global = True:  .IgnoreCase = True:  .Pattern = Tag1 & ".*" & Tag2  
End With

Set File = Fso.OpenTextFile(eFile):  Text = File.ReadAll:  File.Close

For Each Tag In RE.Execute(Text)
    Text = Replace(Text, Tag, Tag1 & i & Tag2):  i = i + 1
Next
    
Set File = Fso.CreateTextFile(aFile):  File.Write Text:  File.Close

@bastla
Warum so kompliziert?

Gruß Dieter
Mitglied: bastla
bastla 02.11.2009 um 10:50:00 Uhr
Goto Top
@76109
Warum so kompliziert?
Da es doch schon etwas spät war, habe ich mich nicht um etwaiges Optimierungspotential gekümmert, sondern die Sicherheitsvariante (auch, da nicht klar war, ob die bisherigen Nummern alle die gleiche Länge wie die neuen Nummern haben) gewählt - damit es zB nicht passiert, dass (wie es bei Deiner Version vorkommen kann), ein bereits ersetzter Teil nochmals ersetzt wird (kannst Du nachvollziehen, wenn Du in der Testdatei anstelle von 115 den Wert 101 einsetzt ...

Ein weiterer Unterschied zwischen unseren Scripts besteht übrigens im Suchbegriff: Ich hatte xxx als numerisch (aus mindestens einer und sonst auch nur Ziffern bestehend) interpretiert, bei Dir wird alles (und auch Nichts) zwischen den "Mitarbeiter-Nr."-Tags ersetzt - was benötigt wird, muss DaMuchi wissen.
(Die Ungenauigkeit hinsichtlich des Punktes bei "Mitarbeiter-Nr." - könnte in Deiner Fassung ein beliebiges Zeichen sein - dürfte übrigens kaum relevant sein.)

Grüße
bastla
Mitglied: 76109
76109 02.11.2009 um 11:21:25 Uhr
Goto Top
Hallo bastla!

Danke für die Erklärung!

Das es schon so spät war, hatte ich garnicht registriertface-smile

Im Gegensatz zu mir, hast Du natürlich wieder alle Eventualitäten berücksichtigt.

Bleibt die Frage, ob diese auch zu berücksichtigen sind. Das muss DaMuchi entscheiden.

Gruß Dieter
Mitglied: DaMuchi
DaMuchi 02.11.2009 um 22:23:18 Uhr
Goto Top
Erstmals herzlichen Dank an Bastla und Rubberman!
Eure vorgestellten Beispiele konnte ich zum grössten Teil anwenden und meine Arbeit wurde um ein Vielfaches reduziert.

Mein Beispiel mit dem Punkt in Mitarbeiter-Nr. war wohl nicht ideal gewählt.
Im Original heisst der XML-Tag <Employee>Zahl</Employee> und es kann durchaus vorkommen, dass eine dreistellige Zahl durch eine vierstellige Zahl ersetzt wird, was aber problemlos funktionierte.

Betrifft Bastla's VB-Script:
Komischerweise hatte ich Probleme mit den XML-Tags <AddressNumber>Zahl</AddressNumber> und <Beneficiary>Zahl</Beneficiary>. Bei dem XML-Tag AddressNumber wurde nichts ersetzt und bei <Beneficiary> wurden auch z.B. der Tag <BeneficiaryCode> angepasst.

In Sachen VB habe ich sowieso fast keine Kenntnisse und verstehe deinen VB-Script leider nur teilweise, um die notwendigen Anpassungen für die obige Problematik zu machen.

Betrifft Rubberman's Batchverarbeitung:

Funktionierte soweit einwandfrei. Nur die Verarbeitung dauert doch um einiges länger als die mit dem VB-Script, aber das liegt daran das durchschnittlich >30'000 Zeilen umgeschrieben werden.

Kennt jemand eigentlich ein gutes VB-Buch für Anfänger ;)

Nochmals ein grosses Dankeschön an euch alle!

Viele Grüsse

DaMuchi
Mitglied: bastla
bastla 02.11.2009 um 23:04:36 Uhr
Goto Top
Hallo DaMuchi!

Schön, dass wir helfen konnten. face-smile
Hinsichtlich des Problems bei "<AddressNumber>Zahl</AddressNumber>": Nur zur Sicherheit: Die entsprechende Code-Zeile sollte im Prinzip so aussehen:
rE.Pattern = "<AddressNumber>(\d+)</AddressNumber>"
Allerdings wird durch das Suchmuster "\d+" eine relativ "strenge" Überprüfung vorgenommen: Nur, wenn für "Zahl" ausschließlich Ziffern (und zwar mindestens eine) vorgefunden werden, erfolgt auch eine Ersetzung ("\d" steht dabei für eine Ziffer von 0 bis 9, das "+" verlangt, dass mindestens ein solches Zeichen vorkommt). Im Ansatz von didi1954 findest Du mit ".*" das "Gegenstück" - Bedeutung: Es kann, muss aber nicht (dafür sorgt der Stern) ein beliebiges Zeichen (symbolisiert durch den Punkt) als "Zahl" aufscheinen. Wenn Du daher auch mit dieser "lockeren" Suchbedingung leben kannst, sollte mit
rE.Pattern = "<AddressNumber>(.*)</AddressNumber>"
auch die Ersetzung für diese Tags klappen.
Was "<Beneficiary>" und "<BeneficiaryCode>" angeht: Eigentlich sollte nur jeweils einer der beiden Suchbegriffe gefunden werden, also mit zB
rE.Pattern = "<Beneficiary>(\d+)</Beneficiary>"
nur ersterer - funktioniert bei mir übrigens auch (selbst mit (.*) im Suchkriterium) ....
Als kurze Erklärung zum Ablauf des Scripts:
Nach dem Einlesen des gesamten Dateiinhaltes in eine Variable (T1) wird mit den oben angegebenen "Regulären Ausdrücken" nach den Fundstellen gesucht, wobei als Ergebnis sowohl die Position innerhalb des Strings (Zeichenanzahl vom Beginn weg gezählt) und die Länge des gefundenen Teiles (in Zeichen) als auch, ermöglicht durch die Klammern um den "Zahl"-Teil, als "SubMatch" die Zahl selbst zur Verfügung stehen.

Die Funde werden durch die "For-Next"-Schleife nacheinander bearbeitet.

Mit der Funktion Mid() kann dann das die Fundstelle beinhaltende Textstück aus T1 entnommen, die Zahl durch die laufende Nummer N ersetzt (siehe Replace() und das Textstück einer zweiten Variablen (T2) hinzugefügt werden - mit dieser "Salamitaktik" wird immer nur der soeben benötigte Teil aus T1 übernommen, wodurch vor allem, wie schon oben angemerkt, verhindert werden soll, dass bereits "behandelte" Zahlen nochmals ersetzt werden. Da ich auch davon ausgegangen war, dass die Zahlen unterschiedlich lang sein könnten, konnte auch kein zeichenweiser Austausch der alten durch die neue Zahl erfolgen, sondern es musste die gesamte alte Zahl durch die neue Zahl ersetzt werden.

Am Ende wird die zweite Datei mit dem Inhalt der Variablen T2 erstellt.
Einen Literaturhinweis habe ich leider nicht anzubieten ...

Grüße
bastla
Mitglied: DaMuchi
DaMuchi 09.11.2009 um 20:38:26 Uhr
Goto Top
Hallo Bastla!

Wenn auch mit Verspätung vielen Dank für Deine Ausführungen!

Ich habe das Ganze nun nochmals getestet, leider wird weder <Beneficiary>xxx</Beneficiary> noch <AddressNumber>xxx<7AddressNumber> angepasst.
Es wird wohl kaum daran liegen, dass diese beiden Tags eine Gruppierung weiter nach rechts verschoben sind als die beiden funktionierenden Tags <EmployeeNumber>xxx</EmployeeNumber> und <BadgeID>xxx</BadgeID>?

Anbei einmal ein Auszug von einer Transaktion aus der Original-Datei:

  <TaskCount>1</TaskCount>
  <Task>
    <Parameter>
      <Application>LOHN</Application>
      <Id>HierarchyEmployee</Id>
      <MapId>OhneLohn</MapId>
      <Version>2009.10</Version>
    </Parameter>
    <Transaction>
      <Employee mode='SAVE'>  
        <EmployeeNumber>104</EmployeeNumber>
        <CodeName>MUSTER HANS</CodeName>
        <LastName>Muster</LastName>
        <FirstName>Hans</FirstName>
        <BadgeID>104</BadgeID>
        <EmployeeTimeAxis mode='SAVE'>  
          <CostCentreGroup>0</CostCentreGroup>
          <CostCentre1Level1>0</CostCentre1Level1>
          <CostCentre2Level1>0</CostCentre2Level1>
          <CostCentre3Level1>0</CostCentre3Level1>
          <CostCentre4Level1>0</CostCentre4Level1>
          <CostCentre5Level1>0</CostCentre5Level1>
          <CostCentre6Level1>0</CostCentre6Level1>
          <CostCentre7Level1>0</CostCentre7Level1>
          <CostCentre8Level1>0</CostCentre8Level1>
          <CostCentre9Level1>0</CostCentre9Level1>
          <CostCentre10Level1>0</CostCentre10Level1>
          <CostCentre1PercentageLevel1>0</CostCentre1PercentageLevel1>
          <CostCentre2PercentageLevel1>0</CostCentre2PercentageLevel1>
          <CostCentre3PercentageLevel1>0</CostCentre3PercentageLevel1>
          <CostCentre4PercentageLevel1>0</CostCentre4PercentageLevel1>
          <CostCentre5PercentageLevel1>0</CostCentre5PercentageLevel1>
          <CostCentre6PercentageLevel1>0</CostCentre6PercentageLevel1>
          <CostCentre7PercentageLevel1>0</CostCentre7PercentageLevel1>
          <CostCentre8PercentageLevel1>0</CostCentre8PercentageLevel1>
          <CostCentre9PercentageLevel1>0</CostCentre9PercentageLevel1>
          <CostCentre10PercentageLevel1>0</CostCentre10PercentageLevel1>
          <CostCentre1Level2>0</CostCentre1Level2>
          <CostCentre2Level2>0</CostCentre2Level2>
          <CostCentre3Level2>0</CostCentre3Level2>
          <CostCentre4Level2>0</CostCentre4Level2>
          <CostCentre5Level2>0</CostCentre5Level2>
          <CostCentre6Level2>0</CostCentre6Level2>
          <CostCentre7Level2>0</CostCentre7Level2>
          <CostCentre8Level2>0</CostCentre8Level2>
          <CostCentre9Level2>0</CostCentre9Level2>
          <CostCentre10Level2>0</CostCentre10Level2>
          <CostCentre1PercentageLevel2>0</CostCentre1PercentageLevel2>
          <CostCentre2PercentageLevel2>0</CostCentre2PercentageLevel2>
          <CostCentre3PercentageLevel2>0</CostCentre3PercentageLevel2>
          <CostCentre4PercentageLevel2>0</CostCentre4PercentageLevel2>
          <CostCentre5PercentageLevel2>0</CostCentre5PercentageLevel2>
          <CostCentre6PercentageLevel2>0</CostCentre6PercentageLevel2>
          <CostCentre7PercentageLevel2>0</CostCentre7PercentageLevel2>
          <CostCentre8PercentageLevel2>0</CostCentre8PercentageLevel2>
          <CostCentre9PercentageLevel2>0</CostCentre9PercentageLevel2>
          <CostCentre10PercentageLevel2>0</CostCentre10PercentageLevel2>
          <MunicipailityFunction1>0</MunicipailityFunction1>
          <MunicipailityFunction2>0</MunicipailityFunction2>
          <MunicipailityFunction3>0</MunicipailityFunction3>
          <MunicipailityFunction4>0</MunicipailityFunction4>
          <MunicipailityFunction5>0</MunicipailityFunction5>
          <MunicipailityFunction6>0</MunicipailityFunction6>
          <MunicipailityFunction7>0</MunicipailityFunction7>
          <MunicipailityFunction8>0</MunicipailityFunction8>
          <MunicipailityFunction9>0</MunicipailityFunction9>
          <MunicipailityFunction10>0</MunicipailityFunction10>
          <MunicipalityType1>0</MunicipalityType1>
          <MunicipalityType2>0</MunicipalityType2>
          <MunicipalityType3>0</MunicipalityType3>
          <MunicipalityType4>0</MunicipalityType4>
          <MunicipalityType5>0</MunicipalityType5>
          <MunicipalityType6>0</MunicipalityType6>
          <MunicipalityType7>0</MunicipalityType7>
          <MunicipalityType8>0</MunicipalityType8>
          <MunicipalityType9>0</MunicipalityType9>
          <MunicipalityType10>0</MunicipalityType10>
          <YearTimeAxis>2003</YearTimeAxis>
          <MonthTimeAxis>1</MonthTimeAxis>
          <DepartmentNumber>1</DepartmentNumber>
          <SettlementGroup>0</SettlementGroup>
          <GeneralLegerBookingGroup>0</GeneralLegerBookingGroup>
          <LastEntry>1999-10-01</LastEntry>
          <LastLeaving/>
          <EmploymentDuration>0</EmploymentDuration>
          <NewEmployee/>
          <DateOfBirth>1982-07-04</DateOfBirth>
          <Sex>M</Sex>
          <PaymentInterval>6</PaymentInterval>
          <Type>M</Type>
          <LanguageCode>D</LanguageCode>
          <PasswordLevel>0</PasswordLevel>
          <MaximaSettlementType>1</MaximaSettlementType>
          <ConsolidationNumber>0</ConsolidationNumber>
          <Division>0</Division>
          <ProjectManagementGroup>0</ProjectManagementGroup>
          <FormGroup>0</FormGroup>
          <ProjectEmployeeProfile>0</ProjectEmployeeProfile>
          <Country>CH</Country>
          <Currency>CHF</Currency>
          <OASINumber>199.99.999.999</OASINumber>
          <SUVACode>Z1</SUVACode>
          <OASISettlementType>1</OASISettlementType>
          <SFSOZIP>5430</SFSOZIP>
          <CantonOfDomicile>AG</CantonOfDomicile>
          <PlaceOfWork>1</PlaceOfWork>
          <ForeignerCode>0</ForeignerCode>
          <WithholdingTaxCode>1</WithholdingTaxCode>
          <WithholdingTaxTariffClass>0</WithholdingTaxTariffClass>
          <WithholdingTaxRate>0</WithholdingTaxRate>
          <WithholdingTaxTariffCode/>
          <WithholdingTaxResidenceCode/>
          <CantonOfWork>ZH</CantonOfWork>
          <Spouse/>
          <SFSOCountry>CH</SFSOCountry>
          <SFSORelevant>false</SFSORelevant>
          <SFSOResidenceCategory>0</SFSOResidenceCategory>
          <SFSOEducationType>0</SFSOEducationType>
          <SFSORequirementLevel>0</SFSORequirementLevel>
          <SFSOSeniorManagementFunction>0</SFSOSeniorManagementFunction>
          <SFSOActivity>0</SFSOActivity>
          <SFSOWageAgreement>0</SFSOWageAgreement>
          <SFSOSalaryForm>0</SFSOSalaryForm>
          <SFSOWeeklyWorkingHours>0</SFSOWeeklyWorkingHours>
          <ResidencePermit/>
          <AutomaticEntryLeavingSwitch>false</AutomaticEntryLeavingSwitch>
          <FullProgressionForPartTimeWork>false</FullProgressionForPartTimeWork>
          <WithholdingTaxCertificationType/>
          <WithholdingTaxReturnHome/>
          <SpouseIsWorkingInSwitzerland>false</SpouseIsWorkingInSwitzerland>
          <CompensationOffice>1</CompensationOffice>
          <InsuranceCompany>2</InsuranceCompany>
          <SocialInsuranceNumber>999.9999.9999.99</SocialInsuranceNumber>
          <SupplementaryAccidentInsurer>0</SupplementaryAccidentInsurer>
          <ApprenticeOrTrainee>false</ApprenticeOrTrainee>
          <WeeklyWorkingLessons>0</WeeklyWorkingLessons>
          <DailySicknessAllowance>0</DailySicknessAllowance>
          <Initials/>
          <Nationality>CH</Nationality>
          <PlaceOfBirthOrHometown/>
          <FreeAbbreviation/>
          <FreeText/>
          <CivilStatus>2</CivilStatus>
          <FreeNumber1>0</FreeNumber1>
          <FreeNumber2>0</FreeNumber2>
          <Profession/>
          <Position/>
          <FreeCode/>
          <FreeDate1/>
          <FreeDate2/>
          <Support>false</Support>
          <MarriageDate/>
          <ApprenticeshipInOwnCompany>false</ApprenticeshipInOwnCompany>
          <ApprenticeFrom/>
          <ApprenticeUntil/>
          <SwissmemCode>0</SwissmemCode>
          <WageStatementTemplate>1</WageStatementTemplate>
          <Tips/>
          <BenefitInKind/>
          <CompanyCar>P</CompanyCar>
          <SubscriptionPaid/>
          <CanteenMealsAvailable/>
          <NoCompensationOfExpenses>false</NoCompensationOfExpenses>
          <NoLumpSumCompensation>false</NoLumpSumCompensation>
          <GratuitousTransportHomeToWork>false</GratuitousTransportHomeToWork>
          <ContributionToMeals>false</ContributionToMeals>
          <ParticipationOrClaimRights>false</ParticipationOrClaimRights>
          <EmployeeWageStatementData>true</EmployeeWageStatementData>
          <WageStatementOtherExpensesType/>
          <WageStatementText>Fahrz: Benzin, Rep, StVA, Versich zL Mitarb</WageStatementText>
          <ZARNumber/>
          <ZEMISNumber/>
        </EmployeeTimeAxis>
        <EntryLeaving mode='SAVE'>  
          <EntryDate>1999-10-01</EntryDate>
          <LeavingDate/>
          <ReasonForLeaving/>
          <LeavingCode>0</LeavingCode>
          <LeavingCodeForSocialInsurance>0</LeavingCodeForSocialInsurance>
          <EntryOrLeavingSalaryIrrelevant>true</EntryOrLeavingSalaryIrrelevant>
          <FluctuationIncludedInHeadcount>true</FluctuationIncludedInHeadcount>
        </EntryLeaving>
        <AddressData mode='SAVE'>  
          <AddressNumber>5</AddressNumber>
          <Country>CH</Country>
          <ZIP>5430</ZIP>
          <City>Test</City>
          <Language>D</Language>
          <PostRoute>0</PostRoute>
          <Supplement/>
          <Line1>Musterstrasse 24</Line1>
          <Line2/>
          <Line3/>
          <Line4/>
          <SalutationNumber>1</SalutationNumber>
          <IndustryCode>0</IndustryCode>
          <SalutationName>Muster</SalutationName>
          <Title/>
          <Text/>
          <Website/>
          <Email/>
          <Phone1/>
          <Phone2/>
          <Mobile/>
          <Fax/>
          <Free1/>
          <Free2/>
          <FreeDate/>
          <Inactive>false</Inactive>
          <State>ZH</State>
          <NumberOfContacts>0</NumberOfContacts>
          <IsOrderCustomer>false</IsOrderCustomer>
          <NameCodeAvailable>false</NameCodeAvailable>
          <IsGeneralLedgerAddress>false</IsGeneralLedgerAddress>
          <IsSCMAddress>false</IsSCMAddress>
          <IsExternal1>false</IsExternal1>
          <IsExternal2>false</IsExternal2>
          <IsExternal3>false</IsExternal3>
          <ModifiedBy>1</ModifiedBy>
          <EntryDate>2003-05-06</EntryDate>
          <EnteredBy>1</EnteredBy>
          <TextField1/>
          <TextField2/>
          <TextField3/>
          <TextField4/>
          <InfoField1/>
          <InfoField2/>
          <InfoField3/>
          <InfoField4/>
          <InfoField5/>
          <InfoField6/>
          <Number1>0</Number1>
          <Number2>0</Number2>
          <Number3>0</Number3>
          <Number4>0</Number4>
          <Date1/>
          <Date2/>
          <Code1/>
          <Code2/>
          <Code3/>
          <Code4/>
          <YesNo1>false</YesNo1>
          <YesNo2>false</YesNo2>
          <YesNo3>false</YesNo3>
          <YesNo4>false</YesNo4>
          <YesNo5>false</YesNo5>
          <YesNo6>false</YesNo6>
          <YesNo7>false</YesNo7>
          <YesNo8>false</YesNo8>
          <YesNo9>false</YesNo9>
          <YesNo10>false</YesNo10>
          <YesNo11>false</YesNo11>
          <YesNo12>false</YesNo12>
          <YesNo13>false</YesNo13>
          <YesNo14>false</YesNo14>
          <YesNo15>false</YesNo15>
          <YesNo16>false</YesNo16>
          <YesNo17>false</YesNo17>
          <YesNo18>false</YesNo18>
          <YesNo19>false</YesNo19>
          <YesNo20>false</YesNo20>
          <YesNo21>false</YesNo21>
          <YesNo22>false</YesNo22>
          <YesNo23>false</YesNo23>
          <YesNo24>false</YesNo24>
          <YesNo25>false</YesNo25>
          <YesNo26>false</YesNo26>
          <YesNo27>false</YesNo27>
          <YesNo28>false</YesNo28>
          <YesNo29>false</YesNo29>
          <YesNo30>false</YesNo30>
          <Note/>
          <SubjectType>1</SubjectType>
          <AANMainSubject>0</AANMainSubject>
        </AddressData>
        <Outpayment mode='SAVE'>  
          <PaymentCentreNumber>1</PaymentCentreNumber>
          <CompanyPaymentCentre>1</CompanyPaymentCentre>
          <PaymentCentreType>2</PaymentCentreType>
          <Currency>CHF</Currency>
          <PartialPaymentType>1</PartialPaymentType>
          <Amount>0</Amount>
          <PayrollType>0</PayrollType>
          <NormalPayrollRun>false</NormalPayrollRun>
          <GratuityRun>false</GratuityRun>
          <InterimRun>false</InterimRun>
          <SpecialPayrollRun>false</SpecialPayrollRun>
          <PaymentRounding>true</PaymentRounding>
          <PaymentRoundingTo>0.05</PaymentRoundingTo>
          <Text1>Salärzahlung</Text1>
          <Text2/>
          <PaymentReference/>
          <DataFormat>1</DataFormat>
          <Medium>1</Medium>
          <Beneficiary>5</Beneficiary>
          <BeneficiaryCodeName>MUSTER HANS</BeneficiaryCodeName>
          <BeneficiaryAccountNumber>1</BeneficiaryAccountNumber>
          <Bank>0</Bank>
          <PaymentMethod>0</PaymentMethod>
          <OutpaymentCurrency>0</OutpaymentCurrency>
          <SwiftPaymentType>0</SwiftPaymentType>
          <Type>0</Type>
          <BeneficiaryAccount mode='SAVE'>  
            <BeneficiaryType>33</BeneficiaryType>
            <BeneficiaryCountry>CH</BeneficiaryCountry>
            <BeneficiaryAccountNumber>99-99999-9</BeneficiaryAccountNumber>
            <BankNumber>0</BankNumber>
            <TaxType>0</TaxType>
            <PostfinanceExpressDelivery>0</PostfinanceExpressDelivery>
            <PostfinancePersonal>0</PostfinancePersonal>
          </BeneficiaryAccount>
        </Outpayment>
      </Employee>
    </Transaction>

Besten Dank für die weitere Unterstützung!

Viele Grüsse

DaMuchi
Mitglied: bastla
bastla 11.11.2009 um 23:40:43 Uhr
Goto Top
Hallo DaMuchi!

Hinsichtlich der Verspätung kann ich mich gleich revanchieren face-wink: Ich seh's mir an, aber es wird noch etwas dauern ...

Grüße
bastla
Mitglied: FlorianBl
FlorianBl 26.08.2010 um 14:40:57 Uhr
Goto Top