Allmänt meddelande

Collapse
No announcement yet.

Variabler med samma namn i olika script

Collapse
X
 
  • Filter
  • Klockan
  • Show
Clear All
new posts

  • Variabler med samma namn i olika script

    Hej!

    Har två olika ordermodeller som använder sig av samma variabelnamn. Idag så verkar det vara så att den ena ordermodellen använde sig av ett värde i en variabel som den andra ordermodellen satt.

    ORDERMODELL1
    Köpscript:
    GVAR_SL:=820
    ...
    i1(
    ...
    värde1=1234
    setgvarif(värde1,GVAR_SL,villkor)
    ...
    )

    Modellen köpte kl 10.21 och satte GVAR_SL till rätt värde. Sparar GVAR_SL med retval och kan se i lokala ordertransaktioner att den hade rätt värde.

    ORDERMODELL2 (Körs på ett annat konto, på ett annat papper)
    Köpscript:
    GVAR_SL:=830
    ...
    i1(
    ...
    värde2=5678
    setgvarif(värde2,GVAR_SL,villkor)
    ...
    )

    Modellen köpte 12:06 och satte GVAR_SL till rätt värde. Ser det också i lokala ordertransaktioner.

    Men nu har global variabel 820 fått samma värde som 830.
    Är det så att man inte kan ha samma variabel namn trots man kör script på olika konton och på olika papper?

    Är variabelnamn som tilldelas med ":=" annorlunda hanterade?

    Kommer förövrigt att bygga om ovanstående till att använda lasttrade endast.

    /Mats

  • #2
    Det är inga problem att ha samma variabelnamn i olika ordermodeller.
    Men kan man verkligen ha _ (underscore) i ett variabelnamn?
    Sen är det väl inte så bra att ha variabelnamn som påminner om funktionsnamn GVAR. Om du ändrar på ovanstående fungerar det då?

    mvh
    Bertil

    Comment


    • #3
      Ursprungligen postat av Bertil Visa inlägg
      Det är inga problem att ha samma variabelnamn i olika ordermodeller.
      Men kan man verkligen ha _ (underscore) i ett variabelnamn?
      Sen är det väl inte så bra att ha variabelnamn som påminner om funktionsnamn GVAR. Om du ändrar på ovanstående fungerar det då?

      mvh
      Bertil

      Ja det fungerar med _ och det fungerar rent funktionsmässigt. Problemet uppstår när det är parallella ordermodeller kör med lika variablenamn.

      Comment


      • #4
        Ursprungligen postat av matsarvendal Visa inlägg
        Ja det fungerar med _ och det fungerar rent funktionsmässigt. Problemet uppstår när det är parallella ordermodeller kör med lika variablenamn.
        Jag har ju kört upp till 76 ordermodeller parallellt och kanske 10-20 st har innehållit samma variabelnamn, inga problem. Men jag har aldrig använt _ och jag undviker att ha variabelnamn som påminner om funktionsnamn.
        Dra dina egna slutsatser.

        mvh
        Bertil

        Edit1: Alla ordermodellerna går dock mot samma instrument i samma konto.
        Edit2: Har inte använt variabelnamn för nummer på global variabel. Detta kanske är problemet.
        Last edited by Bertil; 2016-04-26, 15:57.

        Comment


        • #5
          Om du gör ett test

          Ordermodell1

          värde1=1234
          setgvarif(värde1,820,villkor)
          ...
          Ordermodell2

          värde1=5678
          setgvarif(värde1,830,villkor)
          ...
          Här har vi ju olika värden på värde1 i de båda ordermodellerna.
          Nu bör allt vara OK.
          mvh

          Bertil

          Comment


          • #6
            Ursprungligen postat av Bertil Visa inlägg
            Jag har ju kört upp till 76 ordermodeller parallellt och kanske 10-20 st har innehållit samma variabelnamn, inga problem. Men jag har aldrig använt _ och jag undviker att ha variabelnamn som påminner om funktionsnamn.
            Dra dina egna slutsatser.

            mvh
            Bertil

            Edit1: Alla ordermodellerna går dock mot samma instrument i samma konto.
            Edit2: Har inte använt variabelnamn för nummer på global variabel. Detta kanske är problemet.
            :-)
            Mina slutsatser är: det har inte med varken GVAR i namnet eller _ i namnet. Använder nämligen det på flera andra ställen och har inte haft problem.
            Problemet uppstår bara när två ordermodeller kör samtidigt, mot olika konton och mot olika papper - men med samma namn på variablerna.
            Det händer i setgvarif anropet, jag vet inte hur kompilatorn - eller interpretator är det väl snarare - är implementerad, det kan ju vara så att det är där problemet finns. Har sett en hel del skumma fel när koden ser ut på vissa sätt.

            Men skriver om koden nu i alla fall.

            Tack för tipsen!

            Comment


            • #7
              Setgvarif() skriver till globala celler, och dessa är inte unika per instrument eller liknande. Så om flera modeller använder samma globala celler blir det konflikt.

              Comment


              • #8
                Ursprungligen postat av matsarvendal Visa inlägg
                :-)
                Mina slutsatser är: det har inte med varken GVAR i namnet eller _ i namnet. Använder nämligen det på flera andra ställen och har inte haft problem.
                Problemet uppstår bara när två ordermodeller kör samtidigt, mot olika konton och mot olika papper - men med samma namn på variablerna.
                Det händer i setgvarif anropet, jag vet inte hur kompilatorn - eller interpretator är det väl snarare - är implementerad, det kan ju vara så att det är där problemet finns. Har sett en hel del skumma fel när koden ser ut på vissa sätt.

                Men skriver om koden nu i alla fall.

                Tack för tipsen!
                Jo, jag har hittat en del skumma fel själv i mycket komplicerad kod som är svåra att återskapa i enklare kod. Då får man felsöka i den komplicerade koden och försöka går runt problemet istället.
                Med vänlig hälsning
                Bertil

                Comment

                Working...
                X