11. januar 2005 - 15:54Der er
5 kommentarer og 5 løsninger
C5 Ver. 3.0 SP3 - Overføre data mellem 2 regnskaber
Ide til at overføre indkøbslinier fra et regnskab(Feks. DAT) til et andet(feks. XXX). Jeg har forestillet mig en XAL der kaldes, men mangler ide til at have reference til begge regnskaber(skiftevis) med input fra Indlinie.DAT og output til Indlinie.XXX.
Forudsætningen er jo at der i begge regnskaber er oprettet en indkøbsordre med samme nr. Dernæst eksporteres samtlige linier fra regnskab A og importeres i regnskab B. Hvis du gør det i Datamanipulation og gemmer kørslerne, så skal de bare køres sammen i en og lidt kode til at styre hvilket regnskab du er i og hvor det skal hen.
Normalt har man jo gang i noget Intercompany, hvor en indkøbsordre i et regnskab er en salgsordre i et andet regnskab, og det kan man godt få lidt tid til at gå med at få til at køre tilfredsstillende.
Lige et par bemærkninger. Hvis du vil lave en kørsel som kan oprette data i et andet regnskab, så kan det godt lade sig gøre uden eksport / import.
Du kan anvende (i regnskab DAT): #MACROLOAD(C_UTIL)
... <noget kode som finder og giver Indkøbslinien virkefelt> ... PROCESS #PROC_DBChange "Mode=Temp File=XXX PROC=24 \"ARGS=XAL=CopyIndkLin\"" USING IndLinie
Dette kode vil temporært skifte database til databasen XXX og derefter afvikle kørslen CopyIndkLin. Til CopyIndkLin overføres IndLinie. CopyIndkLin kørslen indeholder så kode, som indsætter IndLinie, efter det temporære skift til XXX-regnskabet. Noget i retningen af:
EXTERN Indlinie SET IndLinie.RecId = 0 #DBUPDATE(IndLinie)
MEN (og der er desværre et men):
Du kan desværre ikke have en transaktion aktiv, når du skifter regnskab.
Transaktioner er også mægtige rare at have, hvis man gerne vil være sikker på, at en opdatering ikke bliver gjort halvt.
D.v.s. enten bliver den/de opdateringer der ligger indenfor transaktionens virkefelt udført helt og fuldt, eller også bliver der IKKE opdateret noget som helst.
Jeg havde ide om følgende model: 1) Definere en tabel:KOPIIndlinie.DBD -kun beliggende i regnskabet DAT. 2) I DAT-regnskab(FRM:Indlinie; Trigger:Post-Form) kopiere Indlinier til KOPIIndlinie. 3) Skifte regnskab til XXX og udføre XAL der kopierer fra KOPIIndlinie til Indlinie.DBD.(Diverse kontroller på findes/muligt at overføre osv.) 4) Oprydning på KOPIIndlinie. Kan ideen holde ??
Mariaf: Det er korrekt. Kernen tillader det simpelthen ikke.
Pote: Den vil holde ja. Jeg har lavet noget replikeringskode i et XAL-system engang. Der brugte jeg præcis samme model. Dog havde jeg så en batch-afvikler til at stå og tømme den tabel, som ligger i DAT. :)
Efter adskillige forsøg er det endu ikke lykkedes at tildele point. Er der et eller andet der skal gøres ud over at "Acceptere" ?? Jeg prøver at fordele igen .
Synes godt om
Ny brugerNybegynder
Din løsning...
Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.