[Search for users] [Overall Top Noters] [List of all Conferences] [Download this site]

Conference iosg::all-in-1_v30

Title:*OLD* ALL-IN-1 (tm) Support Conference
Notice:Closed - See Note 4331.l to move to IOSG::ALL-IN-1
Moderator:IOSG::PYE
Created:Thu Jan 30 1992
Last Modified:Tue Jan 23 1996
Last Successful Update:Fri Jun 06 1997
Number of topics:4343
Total number of notes:18308

2528.0. "FOR DSAB and .IF function not working correct!" by VNOTSC::EHRLICH (With the Power & the Glory) Mon Apr 05 1993 13:42

Hi all,

	one of my favourite customers ran into following problem with
ALL-IN-1 V3.0-1. Guess who, yeah it's the COV again. But it is easy to
reproduce in our office, too.

Having a Boilerplate like this (called abt.blp)
!ABT.BLP
<&oa do ABT>                     
and the DO Script for this (called abt.scp)
!ABT.SCP
for subscriber do .if .orgunit1 NES "MD-ADV" then -       
 Get oa$merge_line = .Commname:30 " Abt = " .orgunit1     

This will be run by <MERGE ABT,ABT.LIS from ALL-IN-1 Menu.  
The result in ABT.LIS File looks like this:

Grasser Gerald                 Abt = Referat ES2  
Lydia Wutka                    Abt = Referat MN3  
FAX VOT                        Abt =              
berger stefan                  Abt =              
Altenburger, Ing. Helmut, TK   Abt = Referat ES2  
Reithmayer, Ing. Johann        Abt = MD-ADV       
Beate Rinzner                  Abt = MD-ADV       
                                                  
See, you'll find some matches with "MD-ADV". But this is not the result which
is expected. The .IF function is always TRUE.

What have we done here wrong!

Best regards
Charly_from_CSC_Vienna   
T.RTitleUserPersonal
Name
DateLines
2528.1Ideas ...BRUMMY::MARTIN::BELLMartin Bell, NTCC, Birmingham UKMon Apr 05 1993 14:0715
Just a couple of thoughts ...

Firstly, why don't you include the conditional within the FOR loop,
thus

for subscriber with .orgunit1 nes "MD-ADV" do get oa$merge_line ...

Secondly, i think that the subscriber DSAB is "intelligent", and when
you search on ORGUNIT1 it automatically searches other ORGUNITS, so
you may be hitting some side-effect of comparing other fields within
a boolean.

Maybe, perhaps,

mb
2528.2Subscriber uses a funny type of "intelligence"!IOSG::SHOVEDave Shove -- REO2-G/M6Mon Apr 05 1993 14:1512
    This is a known bug (I should know, as I reported it!), with the
    SUBSCRIBER data-set, which causes it to confuse any IFs.
    
    You can work round it by binding a phantom to SUBSCRIBER, so your
    script would look like:
    
    bind *fred to subscriber
    for *fred do ...
    
    (don't forget to do a bind_break *fred at the end of your script too.)
    
    D.
2528.3You're right! A nice workaround!VNABRW::EHRLICH_KWith the Power &amp; the GloryMon Apr 05 1993 15:029
    Good afternoon,
    
    you're both right! I think the easyiest way is the workaround mentioned
    in .1 from Martin.
    
    Thank you again!
    
    Best regards 
    Charly
2528.4.1 doesn't work either!VNABRW::EHRLICH_KWith the Power &amp; the GloryMon Apr 05 1993 15:199
    Martin,
    
    I've tried your solution from .1 but it doesn'T work here either.
    The output file hasn't changed. 
    
    Best Regards 
    
    Charly
    
2528.5BRUMMY::MARTIN::BELLMartin Bell, NTCC, Birmingham UKMon Apr 05 1993 16:337
Charly,

oh well, still, you can use Dave's idea!

Cheers,

Martin
2528.6I've tried Daves one and ....VNABRW::EHRLICH_KWith the Power &amp; the GloryMon Apr 05 1993 16:5691
    Dave, Martin,
    
    I've then tried Daves workaround, and it doesn'T work again.
    The same output is still here.
    But having a look in the trace I get the same error messages described
    in Note 1198.
    
    Below I've posted a piece of the trace.
    
    Hmmmm?? What's going on here???
    
    Best Regards 
    Charly_from_CSC_Vienna
    
<merge mdadv_abt, wrk$:bind_abt.lis {CR}
![A1LOG]  Entry = %OA-I-LOGUSER, <merge mdadv_abt, wrk$:bind_abt.lis{CR}
![FORM]   Form = MAIN, Field = CHOICE/7, Page = 1, Key Value = {CR}
![FUNC]   Function = OA$FLD_DONE, Cmd line = 
![A1LOG]  Entry = %OA-I-LOGFUN, Funktion: OA$FLD_DONE     
![FIELD]  Field = CHOICE/7. All fields checked
![FIELD]  Field CHOICE being post-processed. Workspace = 0004B000
![FIELD]  Field = CHOICE. Returning field contents
![FORM]   Form = MAIN, Field = CHOICE/7, Page = 1, Input = <merge mdadv_abt, wrk
!               $:bind_abt.lis
![FUNC]   Function = MERGE, Cmd line = mdadv_abt, wrk$:bind_abt.lis
![A1LOG]  Entry = %OA-I-LOGFUN, Funktion: MERGE           mdadv_abt, wrk$:bind_a
!               bt.lis
![BLP]    Merging boilerplate mdadv_abt
![IO]     Opening TXT$MERGE_OUTPUT, File = wrk$:bind_abt.lis, Class = TEXT, Mode
!                = OUTPUT
![IO]     Putting record in TXT$MERGE_OUTPUT, Key = 
![FUNC]   Function = DO, Cmd line = mdadv_ABT
![A1LOG]  Entry = %OA-I-LOGFUN, Funktion: DO              mdadv_ABT
!   
![SCRIPT] Opening script MDADV_ABT (DO)
![IVP]    Script mdadv_ABT opened
![SCRIPT] Function nesting level = 0. Script context follows:
![SCRIPT] Line           SCRIPT Script
!   
![SCRIPT] Line             DO Script
![SCRIPT]   0    MDADV_ABT
!   
![SCRIPT] MDADV_ABT Line 1: BIND *fred to subscriber
![FUNC]   Function = BIND, Cmd line = *fred to subscriber
![A1LOG]  Entry = %OA-I-LOGFUN, Funktion: BIND            *fred to subscriber
![SYMBOL] Symbol = LOG$sys$cluster_node, Value = VNOTSC::
![FLOW]   Form UAPASSWRD opening, Library = ALLIN1$DISK:[ALLIN1.LIB_GERMAN]OAFOR
!               M.FLB;
![IO]     Opening UAPASSWRD, File = OA$DATA_SHARE:UAPASSWRD.DAT, Class = DATA, M
!               ode = INPUT
![IO]     Getting record from UAPASSWRD, Key = OA$VNOTSC$ALLIN1, Key-of-ref = /0
![IO]     Getting field UADDSID from UAPASSWRD, Value = 2B280A80009559E6439086C0
!               7EC20000
![SYMBOL] Symbol = #display, Value = 
![IO]     Getting field UAPASSWORD from UAPASSWRD, Value = TESTA1
![IO]     Getting field  from USERAGENT, Value = 
![IO]     Status = Die Funktion "!AS" ist bei dieser Version nicht verf�gbar.
![IO]     Getting field  from USERAGENT, Value = 
![IO]     Status = Die Funktion "!AS" ist bei dieser Version nicht verf�gbar.
![IO]     Getting field  from USERAGENT, Value = 
![IO]     Status = Die Funktion "!AS" ist bei dieser Version nicht verf�gbar.
![IO]     Getting field MTANODE2 from USERAGENT, Value = 
![IO]     Status = Die Funktion "!AS" ist bei dieser Version nicht verf�gbar.
![IO]     Getting field MTANODE1 from USERAGENT, Value = VNOTSC
![IO]     Status = Die Funktion "!AS" ist bei dieser Version nicht verf�gbar.
![IO]     Getting field USERIDI from USERAGENT, Value = MANAGER
![IO]     Status = Die Funktion "!AS" ist bei dieser Version nicht verf�gbar.
![IO]     Getting field MAILBOX from USERAGENT, Value = A1
![IO]     Status = Die Funktion "!AS" ist bei dieser Version nicht verf�gbar.
![IO]     Getting field USERIDV from USERAGENT, Value = 
![IO]     Status = Die Funktion "!AS" ist bei dieser Version nicht verf�gbar.
![IO]     Getting field VMSNODE from USERAGENT, Value = 
![IO]     Status = Die Funktion "!AS" ist bei dieser Version nicht verf�gbar.
![IO]     Getting record from PROFIL, Key = EHRLICH, Key-of-ref = USER/0
![IO]     Getting field MDFLAG from PROFIL, Value = Y
![SCRIPT] MDADV_ABT Line 2: FOR *fred do .if .orgunit1 NES "SSG" then Get oa$mer
!               ge_line = .Commname:30 " Abt = " .orgunit1
![FUNC]   Function = FOR, Cmd line = *fred do .if .orgunit1 NES "SSG" then Get o
!               a$merge_line = .Commname:30 " Abt = " .orgunit1
![A1LOG]  Entry = %OA-I-LOGFUN, Funktion: FOR             *fred do .if .orgunit1
!                NES "SSG" then Get oa$merge_line = .Commname:30 " Abt = " .orgu
!               nit1
![SYMBOL] Symbol = #display, Value = 
![SYMBOL] Symbol = , Value = 
![FUNC]   Function = OA$SCP_DISPATCH, Cmd line = .if .orgunit1 NES "SSG" then Ge
!               t oa$merge_line = .Commname:30 " Abt = " .orgunit1
![A1LOG]  Entry = %OA-I-LOGFUN, Funktion: OA$SCP_DISPATCH .if .orgunit1 NES "SSG
!               " then Get oa$merge_line = .Commname:30 " Abt = " .orgunit1
![SCRIPT] Form = MAIN, Statement = .if .orgunit1 NES "SSG" then Get oa$merge_lin
!               e = .Commname:30 " Abt = " .orgunit1
![SYMBOL] Symbol = "SSG", Value = SSG
2528.7Now it works, but I don't know why ...VNABRW::EHRLICH_KWith the Power &amp; the GloryTue Apr 06 1993 14:5019
    Good afternoon again,
    
    today I've spent some more time playing with the subscriber DSAB.
    Expanding Daves' solution to following:
    
    bind/sort_key=".SURNAME1" *fred to subscriber
    for *fred do .if .orgunit1 NES "SSG" then -    ! or ENS - as you like -
        Get oa$merge_line = .Commname:30 " Abt = " .orgunit1
    bind_break *fred
    
    works now fine.
    
    But having switched on the TRACE again, you'll find these errormessages
    as mentioned in .6.
    
    Can we ignore them?  Any ideas why this?
    
    Best regards
    Charly_from_Vienna
2528.8Worked fine in v2.4 (but of course i'd say that)AIMTEC::WICKS_AOscar the Grouch is an Optimist!Tue Apr 06 1993 17:2811
    Charly,
    
    No you shouldn't ever ignore these error messages - there was a note in
    here only a few days ago that mentioned these error message - can't
    find it at the moment. As I said in that note someone in Engineering
    needs to sit down in the VAX debugger and work out just what 'feature'
    was introduced in v3.0
    
    Regards,
    
    Andrew.D.Wicks
2528.9Yes, Andy, you're right!VNABRW::EHRLICH_KWith the Power &amp; the GloryWed Apr 07 1993 08:2315
    Andy,
    
    	you've - however- right! The notes you and I mean is 1198 as
    I mentioned in .6. Guess, all I want to know is if someone has
    found  wherein the problem lies. As Trevor said in 1198.11 he has
    SPR'd this, I was not sure about filling out a SPR, too.
    
    The funny thing is, that it seems to work.
    
    Andy, have a nice day and maybe can you forward Candy(theMoon) my
    special greetings. Thatwillbenice!
    
    Regards
    Charly_as_you_know_the_troublemaker_from_Vienna!
    
2528.10One SPR should do it.IOSG::SHOVEDave Shove -- REO2-G/M6Wed Apr 07 1993 17:116
    Since it's been SPRd once, there's no need for you to do so again.
    
    I strongly suspect that the problem is just some code setting the wrong
    status value somewhere, but we do need to check.
    
    D.