Skip to main content

Notifications

Announcements

No record found.

Microsoft Dynamics SL (Archived)

ask - Table which stored info on Customer maintenance screen (Balance info)

Posted on by 3,205

Hi there,

I need help/info.

on Customer Maintenance info, there are:

- field "Credit limit"

- field "credit available"

- fields in group balance.

what table(s) that store records for those fields?

I tried to see in customization mode, but can't find such table(s).

thanks before.

*This post is locked for comments

  • Barry Flynn Profile Picture
    Barry Flynn 3,090 on at
    Re: ask - Table which stored info on Customer maintenance screen (Balance info)

    << can you please, explain about each

    << parameter / variable of Launch,

    << CallApplicwait, applsetparmvalue?

    I'm not sure that I can explain Launch's parameters any better than the help file can.

    Remember that Launch has two different ways of passing parameters.

    One way is to add them to the "command line"

    For example  

     serr1 = Launch("0301000 " & sparm(StringParm1) & PRMSEP & sparm(StringParm2), True, True, 0)

    (Actually you shoudln't use "0" as the final parameter - there are (now) constants supplied for that purpose.)

    Alternatively you use ApplSetParmValue, possibly multiple times, to "send" the various parameters identified by names.

    Then you use Launch with no parameters - ie

     serr1 = Launch("0301000 ", True, True, 0)

    Note that in both cases, there must be a space following the program name.

    The helpfile entry for ApplSetParmValue, and the other functions, goes into far more detail than I can in a forum.

    If you can say which particular bits are not clear, I'll try to elaborate.

    You referred to CallApplicWait.

    That is a VBTools (SDK) call - it is the SDK equivalent of Launch.

    So if you are working in a customization, CallApplicWait is not relevant.

    Barry

  • rodi Profile Picture
    rodi 3,205 on at
    Re: ask - Table which stored info on Customer maintenance screen (Balance info)

    hi Barry,

    yes I've looked Launch in User Manual. can you please, explain about each parameter / variable of Launch, CallApplicwait, applsetparmvalue?

    anyway, thanks for your explain. I will try to add those lines in module.

    later I'll update info.

  • Barry Flynn Profile Picture
    Barry Flynn 3,090 on at
    Re: ask - Table which stored info on Customer maintenance screen (Balance info)

    Have you looked up Launch in the Help file?

    I think it gives a better description of the functionality that I can.

    (In SL 2011 go to the Contents Tab of Help.

    Then go to Visual_Basic_For_Applications/API_Function_Calls/Launch.)

    You'll possibly also want to look at ApplSetParmValue & ApplGetParmValue.

    And possibly Edit_Close.

    If you still can't make it work, please post the relevant code that you are using.

    I recall earlier in one of your threads that we talked about how a called program could return values to the calling program, and I mentioned that the Clipboard might be one possible way.

    I've found some code that I used a long time ago, and it may still work.

    (I haven't tried it for some years, so I don't know if it will or not.)

    It used functions Clipboard_GetText and Clipboard_SetText.

    To make those functions available, it was necessary to include the following four lines in a Module

    Public Declare Function Clipboard_GetText Lib "sbltovba.dll" () As String

    Public Declare Sub Clipboard_SetText Lib "sbltovba.dll" (ByVal szString As String)

    Public Declare Function Clipboard_Clear Lib "sbltovba.dll" () As Boolean

    Public Declare Function Clipboard_GetFormat Lib "sbltovba.dll" (ByVal iFormat As Integer) As Boolean

    Hope that helps !

    Barry

  • rodi Profile Picture
    rodi 3,205 on at
    Re: ask - Table which stored info on Customer maintenance screen (Balance info)

    Hi Barry,

    sorry for late reply. I've checked, yes we have vbtool installed.

    but in this case, I think it refer to customization, which mean, I modify existing solomon screens.

    but, I still can't figure out use callapp in exisiting solomon.

    if I use "Launch", is there parameter/something like that, to make launch other screen with option "minimize" or "background mode" ?

  • Barry Flynn Profile Picture
    Barry Flynn 3,090 on at
    Re: ask - Table which stored info on Customer maintenance screen (Balance info)

    << how I detect that we have vbtool installed?

    You would have bought & registered the VT "module" (which is the SDK)

    The SDK (VBTools) is quite different  from Customization.

    With Customization, you open up an existing Solomon screen, then go into Customize Mode, and work from there.

    You do not have (and do not need) the Source Code for that screen.

    You cannot write a new screen - you can only modify existing screens.

    With the SDK, its pretty much the opposite.

    You cannot work with existing Solomon screens.

    You write (and then modify) new screens, starting from scratch.

    You do need the source code for the screen - without it you can't do anything.

    And the tool you use is Visual Studio (specifically Visual Basic) 2005 or 2008.

    Although there are some similarities between the SDK and Customization, they are very different tools.

    Barry

  • rodi Profile Picture
    rodi 3,205 on at
    Re: ask - Table which stored info on Customer maintenance screen (Balance info)

    hi Barry,

    yes it's pretty clear. many thanks.

    do you refer "visual basic editor" for "vbtool"? if no, how I detect that we have vbtool installed?

  • Barry Flynn Profile Picture
    Barry Flynn 3,090 on at
    Re: ask - Table which stored info on Customer maintenance screen (Balance info)

    Just to confuse things, there are two mechanisms for using CallApplicWait and passing parameters to the called screen.

    First though - CallApplicWait is (according to my unreliable memory) available only in the SDK (aka VBTools).

    In Customization code, you use Launch, which performs the same function, but has a different name and different syntax.

    --=-=-=-=

    The "name of application" is the name of the screen that you are calling.

    With the "old parameter passing method, you appended the parameters afther the screen name.

    With the "new method", you use the ApplSetParmValue call(s) to pass the parameters.

    Then you use CallApplicWait to fire up the other screen.

    ApplSetParmValue is , essentially, a way of passing parameters, giving them a Name.

    The code in the receiving screen then retrieves them using the same Name.

    That is useful if VBTools code and Customization code are both passing Named parameters.

    Provided they use different Names, there will be no clash.

    -=-=

    Here's some sample code of mine.

    First, in a VBTools screen, there is this code.

    It passes two parameters, which are contained in variables bXFAAPARTran.APARBatNbr and bXFAAPARTran.APARRefNbr.

    Then it calls a screen whose name is in variable lsProggy.

    lsProggy will contain, for example "0301000".

    Here;s the code

     Call ApplSetParmValue("FA_VBT", "BatNbr", SParm(bXFAAPARTran.APARBatNbr))

     Call ApplSetParmValue("FA_VBT", "RefNbr", SParm(bXFAAPARTran.APARRefNbr))

     Call CallApplicWait(lsProggy, "")

    Then, this customization code (BSL) fires in the receiving screen's Form Display event.

       lsBatNbr = ApplGetParmValue("FA_VBT", "BatNbr")

       lsRefNbr = ApplGetParmValue("FA_VBT", "RefNbr")

       '----call MessBox(lsBatNbr & "/" & lsRefNbr, mb_ok, "Form Load Debug")

       if len(Trim$(lsRefNbr)) > 0 then

           serr1 = SetObjectValue("cBatNbrb", lsBatNbr)

           serr1 = SetObjectValue("cRefNbrh", lsRefNbr)

       end if

    ----

    Does that make things any clearer?

    Barry

  • rodi Profile Picture
    rodi 3,205 on at
    Re: ask - Table which stored info on Customer maintenance screen (Balance info)

    Hi Barry,

    I think I need to write down these code. but I need help.

    need info for:

    Call ApplSetParmValue(var1,var2,var3)

    Call CallApplicWait(var4)

    what I need to fill for var1,var2,var3,var4.

    I guess are:

    var3 --> value for send to another screen/application?

    var4 --> name of application. but not sure how to fill.

    also,is there a way to call application with mode minimize?

    need help please. thanks before

  • Barry Flynn Profile Picture
    Barry Flynn 3,090 on at
    Re: ask - Table which stored info on Customer maintenance screen (Balance info)

    << can't we process at the background

    If you are able to figure out which values you require from which tables, then you can fetch that data yourself.

    However, if it is not clear how the values are being computed, and you want to "process in the background" then I think the Object Model is the technique that is designed to allow this.

    It should allow you to:-

    - fire up the other screen

    - "poke in" the required CustId

    - Read the values from any controls

    - Close the other screen down.

    I've never tried using the object model from Customization code, and I don't know how successful it would be running in that environment.

    Information on the object model is available from the SL Help system, or from file sl_ob.chm in the Help directory.

    Barry

  • rodi Profile Picture
    rodi 3,205 on at
    Re: ask - Table which stored info on Customer maintenance screen (Balance info)

    One possibility is to use CallApplicWait to fire up the second screen, passing the required CustId.

    A custiomization to that screen would then use SetObjectValue to load that customer, and then use GetObjectValue to obtain the various values.

    But then the problems start.Shutting down the 2nd program will be a problem. I think the user will have to do that...

    ==>

    can't we process at the background?if can, then may you give me the example for this process:

    let says my customization involves 2 screen (screen_A and screen_B).

    let says fieldnames which want to be read from screen_B is control1 and control2

    from screen_A, read value from screen_B.control1 where screen_B.custid = screen_A.custid

    An alternative might be to use the Object Model to fire up the second screen and manipulate it. ==> do you mean by using GetObject?

    Another alternative is to insert the values into a table, which your "first screen" then reads. ==> I'm afraid this will not working properly, since value of the objects are dynamic.

    An obvious potential problem there is multi-user contention - two users doing the same thing at  the same time but for different customers. ==> there will be only 1 user who run this process.

    thanks before

Under review

Thank you for your reply! To ensure a great experience for everyone, your content is awaiting approval by our Community Managers. Please check back later.

Helpful resources

Quick Links

December Spotlight Star - Muhammad Affan

Congratulations to a top community star!

Top 10 leaders for November!

Congratulations to our November super stars!

Tips for Writing Effective Suggested Answers

Best practices for providing successful forum answers ✍️

Leaderboard

#1
André Arnaud de Calavon Profile Picture

André Arnaud de Cal... 291,280 Super User 2024 Season 2

#2
Martin Dráb Profile Picture

Martin Dráb 230,214 Most Valuable Professional

#3
nmaenpaa Profile Picture

nmaenpaa 101,156

Leaderboard

Featured topics

Product updates

Dynamics 365 release plans