Options

auto-increment waarden invullen

pieter.vanparyspieter.vanparys Member Posts: 10
edited 2008-04-15 in NAV Dutch speaking only
Ik ben momenteel bezig met een applicatie om vanaf een pocket pc via een webservice (en msmq) naar de NAS te communiceren. Tijdens het boeken van een correctie op artikeldagboek stuitte ik op het probleem dat bv het DocumentNr niet automatisch wordt gegenereerd / geincrementeerd, zo ook het Line No, enz. Is er een manier om bij een INSERT aan C/AL zijde ervoor te zorgen dat deze autp-increment waardes correct worden ingevuld?

Comments

  • Options
    ajhvdbajhvdb Member Posts: 672
    Als je het record leegmaakt en de INSERT(TRUE) oproept wordt het record aangemaakt met een nieuw nummer. Hierna heb je alleen nog maar MODIFY nodig.
  • Options
    pieter.vanparyspieter.vanparys Member Posts: 10
    ajhvdb wrote:
    Als je het record leegmaakt en de INSERT(TRUE) oproept wordt het record aangemaakt met een nieuw nummer. Hierna heb je alleen nog maar MODIFY nodig.

    Misschien even verduidelijken, nu wordt er het volgende gedaan:
    refRecord.INSERT(true);
    
    // loop fields to be set
    FOR lintFieldIdx := lintFieldIdx TO lintFieldsAfterInsert DO BEGIN
      ....
      fctValidate(lrefField,lautField.Value);
    END;
    
    refRecord.MODIFY(TRUE);
    

    Maar zoals gezegd in de eerste post werkt dit niet. Als ik bv geen Line No (primaire sleutel) meegeef, dan krijg ik volgende fout:
    The Artikeldagboekregel already exists.
    
    Identification fields and values:
    
    Dagboeksjabloon='ARTIKEL',Dagboekbatch='STANDAARD',Regelnr.='0'
    
  • Options
    ajhvdbajhvdb Member Posts: 672
    Regelnr. wordt in het Form van het dagboek automatisch gevuld. Je moet dit dus simuleren door zelf het regelnr te vullen.
  • Options
    DenSterDenSter Member Posts: 8,304
    Line No. is niet een auto increment veld. Die waardes worden overal in hete systeem via code aangemaakt, en dat zal je in je webservice ook moeten doen. Op forms lijkt het alsof het auto increment is, maar stiekem wordt dat door de form executable in run time gedaan. Elders in het systeem worden Line No waarden via code gegenereerd.
Sign In or Register to comment.