Communication with NAV Client possible?

clippernetclippernet Member Posts: 38
Hello forum,

Is it possible to communicate with an active Navision client via MSMQ or named pipes just like with a NAS? I need to trigger a dataport in the running Navision client of the users computer from an external program on the same computer. And I'd like the user to actually see what's happening, in other words I can't do it via a NAS Server because then the user wouldn't see any error messages that might occur.

Thanks in advance for pointing me in the right direction...

Beo Lutz

Comments

  • rspruitrspruit Member Posts: 25
    Hi Beo,

    The NAS is nothing but a GUIless client, so anything that you can run on the NAS you can also run on a "normal" client. I have no experience with MS MQ, but I think the configuration is nothing else than on a server.

    Success!

    Grtz.

    Remco
  • Marije_BrummelMarije_Brummel Member, Moderators Design Patterns Posts: 4,262
    If you put a message in your codeunit you can see it in you windows logfiles.

    Also dataports are not supported by the NAS.
  • DenSterDenSter Member Posts: 8,307
    No NAS can definately NOT do everything a normal client can do, in fact it is quite limited in its capabilities. No forms, no dataports, no reports with request forms.

    I also don't know of any way to communicate with a running client and executing business logic that way.
  • vytjakvytjak Member Posts: 36
    You should have no problems communicating with an active Navision client via MSMQ/named pipes/sockets just like with NAS. I have an integration module which runs in context of NAS on production database and in context of normal client on test database.
    All there's required is a few checks here and there in the code, if you're running with GUi or not.
    Vytenis Jakas
    B3 Technologies - Making Technology Serve the People
  • DenSterDenSter Member Posts: 8,307
    So you can find the Navision client that I am running and communicate with it from outside NAV? I would be interested to know how to do that.
  • IHateLinuxIHateLinux Member Posts: 223
    Hi all,

    just a comment. I have never done that before but in theory it should be really easy.

    Create an automation controller which will listen on the pipe or the MSMQ (some kind of an event handler).

    Create the object when e.g. the user opens the main form or something similar. Create it globally so that there is only one object in one open client. When the object is created (so during this process) create a unique queue / pipe for this specific client.

    In the event add the code which should be run whenever the message comes in.

    As i said, should work perfectly in theory.

    HTH,
    Rainer
Sign In or Register to comment.