[Gelöst] RTC Page von extern mit Parameter aufrufen

19. Januar 2010 14:55

Hallo zusammen,

ich kann ja in der Commandozeile den RTC mit folgendem Aufruf öffnen:
dynamicsnav:////runpage?page=5050

Ist es auch möglich die page von extern mit einem bestimmten Record aufzurufen?

So in etwa:

dynamicsnav:////runpage?page=5050&position=Field1=(KT100006)

Gruß und danke
Andy
Zuletzt geändert von andyR am 11. Februar 2010 13:52, insgesamt 1-mal geändert.

Re: RTC Page von extern mit Parameter aufrufen

19. Januar 2010 18:13

ja ist möglich

dann muss hinter den spass ein &bookmark=xxx

xxx erzeugst du durch FORMAT(RecordID,0,10)

Klappt nur im RTC und nur in nav 2009 ohne SP

Re: RTC Page von extern mit Parameter aufrufen

20. Januar 2010 00:08

elroberto hat geschrieben:Klappt nur im RTC und nur in nav 2009 ohne SP
Ersteres ist korrekt, diese Formatierung erlaubt nur der RTC bzw. NST, allerdings funktioniert der FORMAT ebenfalls in allen aktuellen Folgeversionen, also auch unter NAV 2009 SP1+

Re: RTC Page von extern mit Parameter aufrufen

20. Januar 2010 09:17

SilverX hat geschrieben:
elroberto hat geschrieben:Klappt nur im RTC und nur in nav 2009 ohne SP
Ersteres ist korrekt, diese Formatierung erlaubt nur der RTC bzw. NST, allerdings funktioniert der FORMAT ebenfalls in allen aktuellen Folgeversionen, also auch unter NAV 2009 SP1+


dann probier das mal bei dir aus bitte. du kannst den befehl zwar ausführen aber wenn du die page dann aufrufen willst kommt ein fehler.
recordlink not valid oder so...

falls das bei dir nicht passiert, bitte sagt mir wie du das anstellst^^

Re: RTC Page von extern mit Parameter aufrufen

20. Januar 2010 14:47

Ich hab es bereits getestet, ich würde das sonst nicht mit so absoluter Sicherheit schreiben :) Ich hab aber gerade nochmal eine Testpage zusammengebaut mit der es funktioniert:
Code:
OBJECT Page 60000 Bookmark Test Page
{
  OBJECT-PROPERTIES
  {
    Date=20.01.10;
    Time=13:39:04;
    Modified=Yes;
    Version List=;
  }
  PROPERTIES
  {
    SourceTable=Table18;
    OnOpenPage=BEGIN
                 Customer.FINDSET;

                 FOR i := 0 TO 25 DO BEGIN
                   Customer.NEXT;
                 END;

                 RecRef.GETTABLE(Customer);
                 Bookmark := FORMAT(RecRef.RECORDID, 0, 10);
               END;

  }
  CONTROLS
  {
    { 1   ;    ;Container ;
                ContainerType=ContentArea }

    { 2   ;1   ;Group     ;
                GroupType=Group }

    { 3   ;2   ;Field     ;
                SourceExpr=Bookmark }

  }
  CODE
  {
    VAR
      Customer@1000 : Record 18;
      RecRef@1002 : RecordRef;
      i@1001 : Integer;
      Bookmark@1003 : Text[250];

    BEGIN
    END.
  }
}
Page importieren, compilieren und starten. Dann den angezeigten Bookmark Key kopieren, den Namen des Debitors merken (der 27.) und über folgenden Aufruf die Page nochmals aufrufen:
Code:
DynamicsNAV://localhost:7046///runpage?page=60000&bookmark=224;EgAAAACJCDMzMDIyODQy
Funktioniert ebenfalls auf der Customer Card:
Code:
DynamicsNAV://localhost:7046///runpage?page=21&bookmark=224;EgAAAACJCDMzMDIyODQy

Voila! :-D

Selbstverständlich musst du den Parameter Bookmark mit deinem ersetzen...

Re: RTC Page von extern mit Parameter aufrufen

20. Januar 2010 17:28

danke!

klappt. bei dem befehl den ich aus der msdn für 2009 ohne sp hatte gabs / weniger...
daran hats gelegen

sry für offtopic aber weiß du auch, wie man das generieren eines bookmarks im classic nachstellen kann?

Re: RTC Page von extern mit Parameter aufrufen

4. Februar 2010 11:19

Hi, sorry hat en bissel gedauert. Zunächst einmal ein großes Danke an alle,die geantwortet haben.
Leider steh ich hier ein bisschen auffm Schlauch.

Ich kann jeden Tabelleneintrag (beispielsweise Kontakte) eindeutig mit einem bookmark identifizieren?
Muss ich zuerst die page (von SilverX)starten, damit dieses Bookmark generiert wird?
Gruss andy

Re: RTC Page von extern mit Parameter aufrufen

4. Februar 2010 13:39

@Roberto: Ja, es ist möglich, allerdings mit etwas mehr Aufwand. Ist eine Kombination aus der Tabellennummer, den Schlüsselfeldern und zusätzlichen Bytes, Base64 codiert und mit der Länge des internen Buffers (bisher immer 0xe0) nebst Semikolon versehen.

@Andy: Den Bookmark erhälst du über FORMAT(RecordID, 0, 10). Also das Ergebnis des FORMAT().

Beispiel anhand der SalesLine:

Code:
// Voraussetzung: SalesLine hat einen definierten Inhalt
RecRef.GETTABLE(SalesLine); // RecRef Instanz "füllen"
Bookmark := FORMAT(RefRef.RECORDID, 0, 10); // Bookmark ermitteln

Re: RTC Page von extern mit Parameter aufrufen

4. Februar 2010 15:49

Ahh ok, vielen Dank.

Wenn ich des Befehlin der DosBox eingebe kommt :
"Der angegeben Befehl wird nicht unterstützt"
Befehl:
dynamicsnav://localhost:7046//runpage?p ... tUMDAwMDEw

Weiss jemand wo hier das Problem liegt?

Re: RTC Page von extern mit Parameter aufrufen

11. Februar 2010 09:46

Ich weiß ja, dass man der NAV Doku nachsagt etwas dürftig zu sein. Aber ich bin immer wieder überrascht, welche Informationen man findet. Manchmal eher zufällig, weil die Struktur noch nicht so 100% passt (meine persönliche Meinung), aber sie ist oftmals da. So auch hier: http://msdn.microsoft.com/en-us/library/dd338743.aspx.

Über die Zeile kannst du den RTC aus der Adresszeile oder per "Ausführen" starten. Vom Command Prompt aus musst du die Client.exe verwendet und die Handler-Zeile (DynamicsNAV://...) dahinter angeben.

P.S.: Bing Rules :-) http://www.bing.com/search?q=dynamicsna ... and+prompt

Re: RTC Page von extern mit Parameter aufrufen

11. Februar 2010 13:52

Hi SilverX,

vielen Dank für deine kompetente Hilfe. Hat nun geklappt. Ich hatt eine Teil des Befehls falsch benutzt.

Danke!!!

Gruß Andy

Re: RTC Page von extern mit Parameter aufrufen [gelöst]

5. März 2010 11:29

Habt ihr das mal mit der Page Sales Order ausprobiert.
Ich habe das alles so gemacht wie bei den anderen und auch den Link aufruf habe ich auch angepasst.

dynamicsnav://localhost/XX/XX/runpage?page=42&bookmark=*nummer*

Aber beim aufruf der Bookmark nummer sagt der mir Datensatzt nicht vorhanden.
Und das ist nur bei Sales Order. Bei Customer und Item funktioniert es.


SO habe ich das bei alle gemacht nur halt angepasst auf die Tabellen

Ich der Tabelle Customer habe ich nen Feld Bookmark eingefügt.
Dann beim C/AL Code unter dem punkt OnMidify()
Folgenden Code geschrieben:

CLEAR(Customer);
Customer."No.":=("No.");
RecRef.GETTABLE(Customer);
Bookmark := FORMAT(RecRef.RECORDID, 0, 10);
//Variablen:
//Bookmark= Text
//Customer= Record auf Customer
//RecRef =RecordRef
////////////////////////////


Und in der Page Customer habe ich das Feld Bookmark eingefügt.
Jetzt zeigt der mir die nummer von den einzelnen Customer an.

Re: [Gelöst] RTC Page von extern mit Parameter aufrufen

9. März 2010 08:24

Hallo Eugen,

ich habe dein Problem testweise folgendermaßen gelöst:

Zwei globale Variablen in der Page 42 definiert: RecRef (RecordRef) und Bookmark (Text[100]). Im OnAfterGetRecord() der Page folgender Code:
Code:
RecRef.GETTABLE(Rec);
Bookmark := FORMAT(RecRef.RECORDID, 0, 10);

Über der No. in der Page 42 die globale Variable Bookmark (SourceExpr) eingefügt. Das dient hier nur zur Ansicht, das Feld benötigt man für eine einwandfreie Funktion weder in der Page noch in der Tabelle. Im allgemeien wird man den Wert für Bookmark beispielsweise in einem Web Service zurück geben, damit man eine definierte Page von außen aufrufen kann.

Danach habe ich mit dem hier angezeigten Wert für Bookmark die Page von außen aufgerufen:

Code:
DynamicsNAV://localhost:7046///runpage?page=42&bookmark=224;JAAAAACLAQAAAACJBjEwMTAxNw==

Re: [Gelöst] RTC Page von extern mit Parameter aufrufen

10. März 2010 14:48

Danke für den Tip, aber mein problem war bei Sales Header gibts es zwei Primärschlüssel. Und ich habe ja immer nur einen meiner Recordvariable übergeben.

Ich habe jetzt aber noch ein größeres problem.

Und zwar brauche ich die Bookmark nummer von Verkaufsrechnungen und Verkaufsgutschriften.
Das problem hier bei ist wen man aus einem Auftrag die Buchung startete kopiert er ja alle werte in die Verkausrechnungs Tabelle.
Wen eine Buchung gemacht wird soll er auch sofort einen Neue bookmark nummer erstellen und die auch in die neue Tabelle eintragen.

Also die Tabelle Verkaufsrechnungen ist 112 die Page dazu ist 132.

Ich finde einfach nicht den trigger dazu wo ich die nummer neu erzeugen kann.....

Re: [Gelöst] RTC Page von extern mit Parameter aufrufen

11. März 2010 11:40

Ich habs mal wieder selber gelöst.
Wens jemanden interesiert.
Er triggert bei der Codeunit 80 dort macht er alle buchengen.