22. Juli 2015 13:29
Hallo zusammen,
es geht um den Report "Copy Sales Document", mit dem man ja u.a. Angebote zu Aufträgen machen kann.
Wenn nun etwas kopiert wird, es sich aber zwischenzeitlich bei den Kontaktdaten etwas ändert, werden diese Änderungen nicht in die Aufträge übernommen.
Es stellt ja im Prinzip auch nur einen Kopiervorgang dar.
Könnte man hier eine Aktualisierung im Falle neuer Daten einbauen?
22. Juli 2015 13:49
Kurz und knapp: ja, aber natürlich geht das. Ob du nun während oder nach dem Kopiervorgang nach den aktuellen Daten suchst und die alten ersetzt, ist dir da ganz frei.
22. Juli 2015 14:02
Klingt gut!
Optimal wäre es, wenn es schon beim Kopieren passiert.
Gibt es im Standard irgendwo was ähnliches, woran ich mich etwas orientieren kann?
22. Juli 2015 14:37
Ich wüsste grad nicht. Aber guck mal in die CU Copy Document Mgt. (dort wird tatsächlich kopiert), wo genau deine Belegart verarbeitet und der neue Beleg erstellt wird.
22. Juli 2015 16:14
Hallo,
tschuldigung, wenn ich da die Euphorie ein wenig bremsen möchte.
1. Um ein Angebot in einen Auftrag zu wandeln hat das Angebot eine Funktion, die auch noch ein wenig mehr tut.
2. Um dafür zu sorgen, dass die Daten aktualisiert werden, reicht normalerweise im CC das einfache drücken von F2 in der "Verkauf-An Nr.", und man bekommt es genau dann, wenn man es auch möchte. (z.B. nicht bei diversen Kunden).
3. Wenn man nur die Nr. des Debitors validiert, werden Kopf und Zeilen neu erstellt (neue Preise), was wahrscheinlich auch nicht gewollt ist.
4. Man benötigt also eine Funktion, die nur bestimmte Daten aktualisiert. Aber welche? (Auch den Ansprechpartner oder die Mailadresse, die der Ansprechpartner extra angegeben hat....????)
Gruß Fiddi
22. Juli 2015 16:44
Hallo Fiddi,
es sollen alle Felder vom Debitor bzw. dem Kontakt aktualisiert werden, die im Stamm vorhanden sind.
Zeilenwerte dürfen natürlich nicht überschrieben werden...
22. Juli 2015 18:41
es sollen alle Felder vom Debitor bzw. dem Kontakt aktualisiert werden, die im Stamm vorhanden sind.
Das führt zwangsweise zu einer neuen Preisfindung, da im Stamm wichtige Kennzeichen für die Preisfindung enthalten sind (buchungsgruppen, Vk- Preise inkl. MwSt.,....), die in der Zeile synchron sein müssen.
Ich kenne eure Branche nicht, aber ich habe noch keinen unserer Kunden erlebt, der keine Angebote an individulle Kontakte beinem bestehenden Kunden gemacht hat.
Ein weiteres Thema kann die Liefer-an Adresse sein. Auch die kann individuell sein, und sollte nicht einfach überschrieben werden.
Gruß Fiddi
22. Juli 2015 19:03
Was denn nun? Zu Beginn ging es lediglich um Kontaktdaten beim Beleg kopieren
22. Juli 2015 19:47
Es geht um jegliche Felder aus dem Stamm. Ändert sich zwischenzeitlich z.B. etwas an der Lieferanschrift, soll auch nur diese aktualisiert werden. Also verstehe ich es richtig, dass man manches nicht trennen kann, ohne das sich dadurch auch andere Werte ändern?
22. Juli 2015 20:45
Nein man kann das nicht trennen, wenn es nicht nur die Adressdaten betrifft.
Schon die Lieferadresse ist nicht ohne.
Normalerweise wird sie mit der Adresse des "Verkauf- an"- Debitors gefüllt. Dann kannst du über den "Liefer-an Code" eine neue Adresse eingeben und/oder die Lieferadresse manuell von Hand ändern.
Was soll NAV beim kopieren des Belegs tun, um die Adresse zu aktualisieren?
Das einzige was du sinnvoll tun könntest, ist nach dem kopieren eine Prüfroutine laufen zu lassen, und bei Abweichungen nachzufragen.
Gruß Fiddi
23. Juli 2015 08:13
NIQ hat geschrieben:Wenn nun etwas kopiert wird, es sich aber zwischenzeitlich bei den Kontaktdaten etwas ändert, werden diese Änderungen nicht in die Aufträge übernommen.
NIQ hat geschrieben:Es geht um jegliche Felder aus dem Stamm.
Kleiner Unterschied, oder?
Es wäre hilfreich, wenn du dich genauer ausdrücken würdest.
23. Juli 2015 10:02
Hallo,
sorry das ich mich da unklar ausgedrückt habe!
Das einzige was du sinnvoll tun könntest, ist nach dem kopieren eine Prüfroutine laufen zu lassen, und bei Abweichungen nachzufragen.
Wie könnte sowas aussehen?
23. Juli 2015 10:42
Wie könnte sowas aussehen?
Das kann man leider pauschal nicht beantworten.
Wenn du wirklich alle Felder aktualisieren willst, dann wird es sehr aufwändig, und noch aufwändiger, die Daten korrekt zu aktualisieren.
Denn bei einigen Feldern kommt es auch darauf an, in welcher Reihenfolge Sie gefüllt werden/wurden (z.B. Verkäufercode).
Wie das ganze ablaufen kann, müsstest du mit eurem Partner diskutieren, da auch eure Organisation mit in die Lösung hinein spielt.
Evtl. ist sogar sinnvoller die Kontaktdaten bzw. den Debitor aus dem Angebot heraus zu aktualisieren, und nicht anders herum.
Möglich wäre auch die manuelle Änderung der Daten, wenn sich der Debitor ändert. (das lässt sich sehr einfach prüfen, und auch die Änderungen sind dann wahrscheinlich einfacher manuell durchführbar. Das macht nur keinen Sinn mehr, wenn das zwanzig mal am Tag passieren würde)
Was ist denn der Grund für die Änderung der Stammdaten gegenüber dem Beleg und kommt das oft genug vor damit sich die Programmierung überhaupt lohnt?
Gruß Fiddi
24. Juli 2015 11:34
Eine Änderung kommt hin und wieder vor. Eine derartige Programmierung wird sich wohl eher nicht lohnen.
Ich habe eine andere Möglichkeit gefunden, damit die Mitarbeiter zumindest eine Info bekommen.
Ich vergleiche im OnAfterGetRecord der Sales Order Form das "Last Date Modified" mit dem "Order Creation Date":
- Code:
CurrForm.DebInfo.VISIBLE(FALSE);
IF Customer.GET("Sell-to Customer No.") THEN BEGIN
IF Customer."Last Date Modified" > "Order Creation Date" THEN
CurrForm.DebInfo.VISIBLE(TRUE);
END;
Der Benutzer bekommt dann im Verkaufsauftrag eine Meldung:
DebInfo.JPG
Soweit so gut... Nun benötige ich das Ganze aber auch im RTC.
Der Code funktioniert so dort ja leider nicht.
Kann mir da jemand weiterhelfen?
Du hast keine ausreichende Berechtigung, um die Dateianhänge dieses Beitrags anzusehen.
24. Juli 2015 12:01
Der Code funktioniert so dort ja leider nicht.
Aber fast so
Du benötigst eine Boolsche GLOBALE Variable z.B. DebInfoVISIBLE. die benötigt die Property "Include in Dataset" = Yes.
Die Variable trägst du dann in die Visible- Property des Feldes Im RTC ein.
- Code:
DebInfoVISIBLE:=FALSE;
IF Customer.GET("Sell-to Customer No.") THEN
DebInfoVISIBLE := Customer."Last Date Modified" > "Order Creation Date";
Für den Anfang ist das schon nicht schlecht, ein paar Dinge solltest du allerdings noch bedenken:
1. Das "Order Creation Date" (kein Standardfeld) tut hoffentlich nicht nur das, was es sagt, nämlich das Erstelldatum des
Auftrags enthalten. Dann bekommst du Änderungen seit Anlage des Angebots nicht mit.
2. es könnte auch noch die Änderung der Lieferadresse oder des Rechnungsempfängers gegeben haben, das prüfst du so nicht.
Gruß Fiddi
24. Juli 2015 12:28
Du benötigst eine Boolsche GLOBALE Variable z.B. DebInfoVISIBLE. die benötigt die Property "Include in Dataset" = Yes.
- Erledigt!
Die Variable trägst du dann in die Visible- Property des Feldes Im RTC ein.
DebInfoPage.JPG
- Meinst du das?
Den Code habe ich in den OnAfterGetRecord geschrieben.
Nun bekomme ich aber bei jedem Verkaufsauftrag eine Meldung angezeigt.
Und wie kann ich das Ausgabefeld in der Page des Verkaufsauftrags vergrößern bzw. verbreitern?
Du hast keine ausreichende Berechtigung, um die Dateianhänge dieses Beitrags anzusehen.
24. Juli 2015 13:14
Hallo,
ich meinte die Properties von "DebInfo" in der Page.
Mit dem Vergrößern und verkleinern bin ich in NAV 2009 RTC ein wenig übergfragt, in NAV 2013 kannst das Feld mit Columnspan und Hide Caption ein wenig beeinflussen.
aber mal anders gefragt, warum machst das ganze nicht einfach mit einer Message?
Gruß Fiddi
24. Juli 2015 14:25
Hallo,
ich habe es mal mit einer MESSAGE-Box getestet.
Ist vielleicht sogar wirklich besser so, da es einen ja quasi direkt anspricht.
Das "Order Creation Date" (kein Standardfeld) tut hoffentlich nicht nur das, was es sagt, nämlich das Erstelldatum des Auftrags enthalten. Dann bekommst du Änderungen seit Anlage des Angebots nicht mit.
Wie meinst du das? Wenn das Änderungsdatum eines Kontakts nach dem Erstelldatum des Auftrags liegt, wird die Meldung ausgegeben - Das ist doch korrekt?
es könnte auch noch die Änderung der Lieferadresse oder des Rechnungsempfängers gegeben haben, das prüfst du so nicht.
Was bzw. wie genau könnte ich das noch mit einbauen? :)
24. Juli 2015 14:38
Wie meinst du das? Wenn das Änderungsdatum eines Kontakts nach dem Erstelldatum des Auftrags liegt, wird die Meldung ausgegeben - Das ist doch korrekt?
wenn aber der Kontakt zwischen Erstellung des Angebots und Erstellung des Auftrags geändert wurde, bekommst du das nicht mit
.
Was bzw. wie genau könnte ich das noch mit einbauen
Da hast du sinnvoll nur die Möglichkeit zu prüfen, wenn die Nr. des Rechnungsempfängers von der des Käufers abweicht, noch einmal die gleiche Prüfung gegen den Rechnungsempfänger zu machen.
Bei der Lieferadresse macht das nur Sinn, wenn du einen "Liefer- An Code" eingegebn hast, den zu prüfen.
Gruß, Fiddi
24. Juli 2015 15:05
Könnte es so gehen? Bekomme die Meldung aber auch nochmal beim Schließen eines Auftrags...
- Code:
DebInfoVisible := FALSE;
IF Customer.GET("Sell-to Customer No.") THEN BEGIN
DebInfoVisible := Customer."Last Date Modified" > "Order Creation Date";
MESSAGE(STRSUBSTNO(Text50000, Customer."No.", "Order Creation Date"));
END;
DebInfoVisible := FALSE;
IF Customer.GET("Bill-to Customer No.") THEN BEGIN
DebInfoVisible := Customer."Last Date Modified" > "Order Creation Date";
MESSAGE(STRSUBSTNO(Text50001));
END;
DebInfoVisible := FALSE;
IF Customer.GET("Ship-to Code") THEN BEGIN
DebInfoVisible := Customer."Last Date Modified" > "Order Creation Date";
MESSAGE(STRSUBSTNO(Text50002));
END;
30. Juli 2015 10:38
Mit würden die beiden Anweisungen reichen:
- Code:
DebInfoVisible := FALSE;
IF Customer.GET("Sell-to Customer No.") THEN BEGIN
DebInfoVisible := Customer."Last Date Modified" > "Order Creation Date";
MESSAGE(STRSUBSTNO(Text50000, Customer."No.", "Order Creation Date"));
IF Customer.GET("Bill-to Customer No.") THEN BEGIN
DebInfoVisible := Customer."Last Date Modified" > "Order Creation Date";
MESSAGE(STRSUBSTNO(Text50001);
END;
END;
Was fehlt mir hier noch, damit die Meldungen beim Schließen eines Auftrags nicht nochmal erscheinen?
30. Juli 2015 12:06
Hallo,
Was fehlt mir hier noch, damit die Meldungen beim Schließen eines Auftrags nicht nochmal erscheinen?
Dir fehlt noch die Prüfung der "Liefer-An Adresse" über die entsprechende Tabelle.
Für die Prüfung der Änderung würde ich dir noch empfehlen zwei neue Felder einzuführen.
Das erste im Debitorenstamm "Date Time Modified" vom Typ DateTime, das du immer dann änderst ,wenn auch "Last Date Modified" geändert wird.
Das zweite im Verkaufskopf: "Last Date Time Checked", ebenfalls vom Type DateTime, das du zum vergleichen benutzt, und immer dann änderst, wenn du die Änderung geprüft hast.
Gruß Fiddi
Powered by phpBB © phpBB Group.
phpBB Mobile / SEO by Artodia.