The TAB Base does not Exsists

nardionlinenardionline Member Posts: 34
edited 2009-05-26 in Navision Attain
Hello!
I have this problem.
I have no idea what this could be.
If you like you could take a look at the picture
I don't know what to do.
Regards
Thanks for everything !
nav%20err.jpg

Comments

  • DenSterDenSter Member Posts: 8,307
    Something in your process is trying to update a record in the "Tab. BASE" table, with primary key values Tipo="WARNINGS" and "Nr."="PCNOCATCLI", but that record does not exist. I would run the debugger to see exactly what is happening and when the error is generated.
  • nardionlinenardionline Member Posts: 34
    I ran the debuger and after that it displays this
    naverr2.jpg
    Hope this could help
    i am desperate.
    Best Regards
    From Albania!
  • David_SingletonDavid_Singleton Member Posts: 5,479

    i am desperate.

    You need to contact your partner, this looks like somethign related to custom coding that they have done.
    David Singleton
  • DenSterDenSter Member Posts: 8,307
    See where it says "recWARNINGS.GET(RecWARNINGS.Tipo::WARNINGS,Text013)", that is a hard coded GET, which would only work if that record actually does exist. I bet that the text constant Text013 is set to 'PCNOCATCLI'.

    I agree with David, you need to get in touch with your NAV partner to take a look at this.
  • nardionlinenardionline Member Posts: 34
    what if i remove recWARNINGS.GET(RecWARNINGS.Tipo::WARNINGS,Text013)", what i would get.
    Would u tell me about the result.
    I couldn't contact the partners cause they have no contract with us anymore.
    i don't even know their address, cause they live in Italy.
    Regards From Nardi!
  • ara3nara3n Member Posts: 9,256
    Then from object designer run table Tab. BASE and insert a record. Warming, PCNOCATCLI in it with a description.
    Ahmed Rashed Amini
    Independent Consultant/Developer


    blog: https://dynamicsuser.net/nav/b/ara3n
  • nardionlinenardionline Member Posts: 34
    This is the code!
    WITH Record DO BEGIN
    TempMsg := '';
    TESTFIELD("Nr. Contratto");
    TESTFIELD("Data Apertura Contratto");

    RecSetup.GET;

    // Parte di controllo
    IF RecSetup."Controllo Flusso Pre/Contratti" > RecSetup."Controllo Flusso Pre/Contratti"::Nessuno THEN BEGIN
    IF RecSetup."Controllo Flusso Pre/Contratti" = RecSetup."Controllo Flusso Pre/Contratti"::Completo THEN BEGIN
    IF NOT "Può fare contratto" THEN
    ERROR(
    Text006,
    "Nr.",FIELDCAPTION("Può fare contratto"));

    IF NOT "Misuratore Installato" THEN
    ERROR(Text006,
    "Nr.",FIELDCAPTION("Misuratore Installato"));
    END;

    IF "Nr. Contratto" = '' THEN
    ERROR(Text007,"Nr.");

    IF "Tipo Utenza" = '' THEN BEGIN
    RecWARNINGS.GET(RecWARNINGS.Tipo::WARNINGS,Text008);
    TempMsg := TempMsg + STRSUBSTNO('%!-%1',RecWARNINGS.Descrizione);
    END;

    //CRB_FSIC START
    IF STRPOS("Causale Apertuta",'FSIC')=0 THEN BEGIN
    IF "Classe Utenza"='' THEN BEGIN
    RecWARNINGS.GET(RecWARNINGS.Tipo::WARNINGS,Text009);
    TempMsg := TempMsg + STRSUBSTNO('%!-%1',RecWARNINGS.Descrizione);
    END;

    IF "Frequenza Fatturazione" = '' THEN BEGIN
    RecWARNINGS.GET(RecWARNINGS.Tipo::WARNINGS,Text010);
    TempMsg := TempMsg+STRSUBSTNO('%!-%1',RecWARNINGS.Descrizione);
    END;
    END;
    //CRB_FSIC END

    IF "Cat. Reg. Business" = '' THEN BEGIN
    RecWARNINGS.GET(RecWARNINGS.Tipo::WARNINGS,Text011);
    TempMsg := TempMsg + STRSUBSTNO('%!-%1',RecWARNINGS.Descrizione);
    END;

    IF "Cat. Reg. Business IVA" = '' THEN BEGIN
    RecWARNINGS.GET(RecWARNINGS.Tipo::WARNINGS,Text012);
    TempMsg := TempMsg+STRSUBSTNO('%!-%1',RecWARNINGS.Descrizione);
    END;

    IF "Cat. Reg. Cliente" = '' THEN BEGIN
    RecWARNINGS.GET(RecWARNINGS.Tipo::WARNINGS,Text013);
    TempMsg := TempMsg + STRSUBSTNO('%!-%1',RecWARNINGS.Descrizione);
    END;

    IF TempMsg <> '' THEN BEGIN
    TempMsg := Text014 + TempMsg + Text015;
    IF NOT CONFIRM(TempMsg) THEN
    ERROR('');
    END;

    IF "Nr. Matricola Misur." <> '' THEN BEGIN
    IF NOT RecMisuratori.GET("Nr. Matricola Misur.") THEN
    ERROR(Text002,"Nr. Matricola Misur.");

    IF RecMisuratori."Stato Misuratore" = RecMisuratori."Stato Misuratore"::Attivo THEN
    ERROR(Text003,"Nr. Matricola Misur.",RecMisuratori."Codice Utenza")
    END;
    END;
    END;

    EXIT(TRUE);
    CreaUtenzaMultiple(Record)
    WITH Record DO BEGIN
    NrUtenzeCreate := 0;
    IF FIND('-') THEN REPEAT
    IF ("Nr. Utenza" = '') OR NOT (RecUtenze.GET("Nr. Utenza")) THEN BEGIN
    NrUtenzeCreate := NrUtenzeCreate + 1;
    TempMsg := '';
    TESTFIELD("Nr. Contratto");
    TESTFIELD("Data Apertura Contratto");

    RecSetup.GET;

    // Parte di controllo
    IF RecSetup."Controllo Flusso Pre/Contratti" > RecSetup."Controllo Flusso Pre/Contratti"::Nessuno THEN BEGIN

    IF RecSetup."Controllo Flusso Pre/Contratti" = RecSetup."Controllo Flusso Pre/Contratti"::Completo THEN BEGIN
    IF NOT "Può fare contratto" THEN
    ERROR(
    Text006,
    "Nr. Prenotazione",FIELDCAPTION("Può fare contratto"));

    IF NOT "Contatore Installato" THEN
    ERROR(Text006,
    "Nr. Prenotazione",FIELDCAPTION("Contatore Installato"));
    END;

    IF "Nr. Contratto" = '' THEN
    ERROR(Text007,"Nr. Prenotazione");

    IF "Tipo Utenza" = '' THEN BEGIN
    RecWARNINGS.GET(RecWARNINGS.Tipo::WARNINGS,Text008);
    TempMsg := TempMsg + STRSUBSTNO('%!-%1',RecWARNINGS.Descrizione);
    END;

    IF "Classe Utenza"='' THEN BEGIN
    RecWARNINGS.GET(RecWARNINGS.Tipo::WARNINGS,Text009);
    TempMsg := TempMsg + STRSUBSTNO('%!-%1',RecWARNINGS.Descrizione);
    END;

    IF "Frequenza Fatturazione" = '' THEN BEGIN
    RecWARNINGS.GET(RecWARNINGS.Tipo::WARNINGS,Text010);
    TempMsg := TempMsg+STRSUBSTNO('%!-%1',RecWARNINGS.Descrizione);
    END;

    IF "Cat. Reg. Business" = '' THEN BEGIN
    RecWARNINGS.GET(RecWARNINGS.Tipo::WARNINGS,Text011);
    TempMsg := TempMsg + STRSUBSTNO('%!-%1',RecWARNINGS.Descrizione);
    END;

    IF "Cat. Reg. Business IVA" = '' THEN BEGIN
    RecWARNINGS.GET(RecWARNINGS.Tipo::WARNINGS,Text012);
    TempMsg := TempMsg+STRSUBSTNO('%!-%1',RecWARNINGS.Descrizione);
    END;

    IF "Cat. Reg. Cliente" = '' THEN BEGIN
    RecWARNINGS.GET(RecWARNINGS.Tipo::WARNINGS,Text013);
    TempMsg := TempMsg + STRSUBSTNO('%!-%1',RecWARNINGS.Descrizione);
    END;

    IF TempMsg <> '' THEN BEGIN
    TempMsg := Text014 + TempMsg + Text015;
    IF NOT CONFIRM(TempMsg) THEN
    ERROR('');
    END;

    IF "Nr. Matricola Misur." <> '' THEN BEGIN
    IF NOT RecMisuratori.GET("Nr. Matricola Misur.") THEN
    ERROR(Text002,"Nr. Matricola Misur.");

    IF RecMisuratori."Stato Misuratore" = RecMisuratori."Stato Misuratore"::Attivo THEN
    ERROR(Text003,"Nr. Matricola Misur.",RecMisuratori."Codice Utenza");
    END;

    END; //Della parte di controllo

    IF RecSetup."Tipo Numerazione Utenze" = RecSetup."Tipo Numerazione Utenze"::"Sbocco+Sequenza" THEN BEGIN
    IF Sbocco = '' THEN BEGIN
    RecSetup.TESTFIELD("Numerazione Sbocco");
    RecSbocchi.INIT;
    RecSbocchi."Nr.":=CUNumerazCodificaz.GetNextNo(RecSetup."Numerazione Sbocco",WORKDATE,TRUE);
    RecSbocchi."Cod. Via":=Via;
    RecSbocchi."Cod Via-Piazza PA":=Via;
    RecSbocchi."Nr. Civico":="Nr. Civico";
    RecSbocchi."Estensione Nr. Civico":="Estensione Nr. Civico";
    RecSbocchi.Scala:=Scala;
    RecSbocchi.Piano:=Piano;
    RecSbocchi.Interno:=Interno;
    RecSbocchi."Nr. Civico PA":="Nr. Civico";
    RecSbocchi."Estensione Nr. Civico PA":="Estensione Nr. Civico";
    RecSbocchi."Scala PA":=Scala;
    RecSbocchi."Piano PA":=Piano;
    RecSbocchi."Interno PA":=Interno;
    RecSbocchi."Cod. Zona":=Zona;
    RecSbocchi."Cod. Sottozona":=SottoZona;
    RecSbocchi.Stato:=RecSbocchi.Stato::Chiuso;
    RecSbocchi.INSERT(TRUE);
    Sbocco:=RecSbocchi."Nr.";
    END ELSE BEGIN
    RecSbocchi.GET(Sbocco);
    RecSbocchi.RENAME(CUNumerazCodificaz.GetNextNo(RecSetup."Numerazione Sbocco",WORKDATE,TRUE));
    RecSbocchi."Cod. Via":=Via;
    RecSbocchi."Cod Via-Piazza PA":=Via;
    RecSbocchi."Nr. Civico":="Nr. Civico";
    RecSbocchi."Estensione Nr. Civico":="Estensione Nr. Civico";
    RecSbocchi.Scala:=Scala;
    RecSbocchi.Piano:=Piano;
    RecSbocchi.Interno:=Interno;
    RecSbocchi."Nr. Civico PA":="Nr. Civico";
    RecSbocchi."Estensione Nr. Civico PA":="Estensione Nr. Civico";
    RecSbocchi."Scala PA":=Scala;
    RecSbocchi."Piano PA":=Piano;
    RecSbocchi."Interno PA":=Interno;
    RecSbocchi."Cod. Zona":=Zona;
    RecSbocchi."Cod. Sottozona":=SottoZona;
    RecSbocchi.Stato:=RecSbocchi.Stato::Chiuso;
    RecSbocchi.MODIFY(TRUE);
    END;
    END;

    // Parte operativa
    RecUtenze.INIT;
    RecUtenze."Nr." := '';
    RecUtenze."Nr. Prenotazione" := "Nr. Prenotazione";
    CUGestioneUtenze.TravasaPrenotMultiplaInUtenza(Record,RecUtenze);
    RecUtenze."Nr. Contratto" := "Nr. Contratto";
    RecUtenze."Data Apertura Contratto" := "Data Apertura Contratto";
    RecUtenze."Ora Apertura contratto" := TIME;

    IF "Nr. Utenza Preassegnato" = '' THEN
    NrManuale := CUNumerazione.ProssimoNumeroUtenza(RecUtenze)
    ELSE
    NrManuale := "Nr. Utenza Preassegnato";

    RecUtenze.VALIDATE("Nr.",NrManuale);
    RecUtenze.TESTFIELD("Nr. Cliente");
    /// PU 1.040 Giorgio
    /// Controlla se il campo telefono è obbligatorio
    IF RecSetup."Telefono Obbligatorio" THEN
    RecUtenze.TESTFIELD(Telefono);

    IF RecSetup."Crea Misuratore Fittizio" THEN BEGIN
    IF NOT "Misuratore Fittizio" THEN
    ERROR(Text017,"Nr. Prenotazione");

    RecMisuratori.INIT;
    RecMisuratori."Nr." := '$' + RecUtenze."Nr.";
    RecMisuratori."Stato Misuratore" := RecMisuratori."Stato Misuratore"::Magazzino;
    RecMisuratori."Codice Utenza" := RecUtenze."Nr.";
    RecMisuratori."Data Apertura" := RecUtenze."Data Apertura Contratto";
    RecMisuratori."Valore Apertura" := 0;
    RecMisuratori."Misuratore Fittizio" := Record."Misuratore Fittizio";
    RecMisuratori.INSERT(TRUE);

    RecUtenze."Matricola Misuratore" := RecMisuratori."Nr.";
    RecUtenze."Data Apertura Misuratore Util." := RecMisuratori."Data Apertura";
    RecUtenze."Valore Apertura Misuratore" := RecMisuratori."Valore Apertura";

    "Nr. Matricola Misur." := RecUtenze."Matricola Misuratore";
    "Data Ap. Misuratore" := RecUtenze."Data Apertura Misuratore Util.";
    "Lettura Iniziale Misur." := RecUtenze."Valore Apertura Misuratore";
    END;

    RecUtenze.INSERT(TRUE);
    "Nr. Utenza" := RecUtenze."Nr.";
    MODIFY(TRUE);

    IF RecSbocchi.GET(RecUtenze.Sbocco) THEN BEGIN
    RecSbocchi."Nr. Utenza" := "Nr. Utenza";
    RecSbocchi.MODIFY(TRUE);
    END;

    IF "Nr. Matricola Misur." <> '' THEN
    CUFunzioniMisuratore.ApriMisuratore(RecUtenze);

    // Registrazione Automatica Depositi Cauzionali
    IF RecSetup."Reg. Autom. Dep. Cauz." THEN
    CASE "Tipo Versamento Dep. Cauz." OF
    "Tipo Versamento Dep. Cauz."::Bolletta :
    CUDepCauz.RegistraMultipliInRS(Record);
    END;
    END;
    UNTIL NEXT = 0;

    MESSAGE(Text018,NrUtenzeCreate,Record.COUNT);
    END;
    OnRun()
    TESTFIELD("Nr. Contratto");
    TESTFIELD("Data Apertura Contratto");

    RecSetup.GET;
    IF "Nr. Utenza" <> '' THEN
    ERROR(Text000,"Nr.","Nr. Utenza");

    IF NOT ControllaPrenotazione(Rec) THEN
    EXIT;

    IF RecSetup."Tipo Numerazione Utenze" = RecSetup."Tipo Numerazione Utenze"::"Sbocco+Sequenza" THEN BEGIN
    IF Sbocco = '' THEN BEGIN
    RecSetup.TESTFIELD("Numerazione Sbocco");
    RecSbocchi.INIT;
    RecSbocchi."Nr.":=CUNumerazCodificaz.GetNextNo(RecSetup."Numerazione Sbocco",WORKDATE,TRUE);
    RecSbocchi."Cod. Via":=Via;
    RecSbocchi."Cod Via-Piazza PA":=Via;
    RecSbocchi."Nr. Civico":="Nr. Civico";
    RecSbocchi."Estensione Nr. Civico":="Estensione Nr. Civico";
    RecSbocchi.Scala:=Scala;
    RecSbocchi.Piano:=Piano;
    RecSbocchi.Interno:=Interno;
    RecSbocchi."Nr. Civico PA":="Nr. Civico";
    RecSbocchi."Estensione Nr. Civico PA":="Estensione Nr. Civico";
    RecSbocchi."Scala PA":=Scala;
    RecSbocchi."Piano PA":=Piano;
    RecSbocchi."Interno PA":=Interno;
    RecSbocchi."Cod. Zona":=Zona;
    RecSbocchi."Cod. Sottozona":=SottoZona;
    RecSbocchi.Stato:=RecSbocchi.Stato::Aperto;
    RecSbocchi.INSERT(TRUE);
    Sbocco:=RecSbocchi."Nr.";
    END ELSE BEGIN
    RecSbocchi.GET(Sbocco);
    // RecSbocchi.RENAME(CUNumerazCodificaz.PrendiProssimoNr(RecSetup."Numerazione Sbocco",WORKDATE,TRUE));
    RecSbocchi."Cod. Via":=Via;
    RecSbocchi."Cod Via-Piazza PA":=Via;
    RecSbocchi."Nr. Civico":="Nr. Civico";
    RecSbocchi."Estensione Nr. Civico":="Estensione Nr. Civico";
    RecSbocchi.Scala:=Scala;
    RecSbocchi.Piano:=Piano;
    RecSbocchi.Interno:=Interno;
    RecSbocchi."Nr. Civico PA":="Nr. Civico";
    RecSbocchi."Estensione Nr. Civico PA":="Estensione Nr. Civico";
    RecSbocchi."Scala PA":=Scala;
    RecSbocchi."Piano PA":=Piano;
    RecSbocchi."Interno PA":=Interno;
    RecSbocchi."Cod. Zona":=Zona;
    RecSbocchi."Cod. Sottozona":=SottoZona;
    RecSbocchi.Stato:=RecSbocchi.Stato::Aperto;
    RecSbocchi.MODIFY(TRUE);
    END;
    END;

    // Parte operativa
    RecUtenze."Nr." := '';
    RecUtenze.INIT;
    RecUtenze."Nr. Prenotazione" := "Nr.";
    CUGestioneUtenze."Travasa Prenotazione in Utenza"(Rec,RecUtenze);
    RecUtenze."Nr. Contratto" := "Nr. Contratto";
    RecUtenze."Data Apertura Contratto" := "Data Apertura Contratto";

    //// aggiunto da Falcone il 15102001
    RecUtenze."Ora Apertura contratto" := TIME;
    //// fine aggiunta

    IF "Nr. Utenza Preassegnato" = '' THEN
    NrManuale := CUNumerazione.ProssimoNumeroUtenza(RecUtenze)
    ELSE
    NrManuale := "Nr. Utenza Preassegnato";

    RecUtenze.VALIDATE("Nr.",NrManuale);

    //CRB_FSIC START
    IF STRPOS("Causale Apertuta",'FSIC') <>0 THEN RecUtenze."Nr. Cliente" := "Nr. Contratto";
    //CRB_FSIC END

    RecUtenze.TESTFIELD("Nr. Cliente");

    /// PU 1.040 Giorgio
    /// Controlla se il campo telefono è obbligatorio
    IF RecSetup."Telefono Obbligatorio" THEN
    RecUtenze.TESTFIELD(Telefono);

    IF NOT RecSetup."Permetti Utenza Senza Misurat." THEN BEGIN
    TESTFIELD("Nr. Matricola Misur.");

    CASE RecSetup."Date Misuratore Ap. Utenza" OF
    RecSetup."Date Misuratore Ap. Utenza"::"Data Apertura" :
    TESTFIELD("Data Ap. Misuratore");
    RecSetup."Date Misuratore Ap. Utenza"::"Data Installazione" :
    TESTFIELD("Data Installazione Misuratore");
    RecSetup."Date Misuratore Ap. Utenza"::Entrambe :
    BEGIN
    TESTFIELD("Data Ap. Misuratore");
    TESTFIELD("Data Installazione Misuratore");
    END;
    END; //CASE

    END ELSE IF RecSetup."Crea Misuratore Fittizio" THEN BEGIN
    IF ("Nr. Matricola Misur." = '') AND (NOT "Misuratore Fittizio") THEN
    ERROR(Text001,
    FIELDCAPTION("Misuratore Fittizio"), FIELDCAPTION("Nr. Matricola Misur."), "Nr.");
    //CRB_FSIC START
    // IF "Misuratore Fittizio" THEN BEGIN
    IF "Misuratore Fittizio" AND ("Nr. Matricola Misur."='') THEN BEGIN
    //CRB_FSIC END
    RecMisuratori.INIT;
    RecMisuratori."Nr." := '$' + RecUtenze."Nr.";
    RecMisuratori."Stato Misuratore" := RecMisuratori."Stato Misuratore"::Magazzino;
    RecMisuratori."Codice Utenza" := RecUtenze."Nr.";
    RecMisuratori."Data Apertura" := RecUtenze."Data Apertura Contratto";
    RecMisuratori."Valore Apertura" := 0;
    RecMisuratori."Misuratore Fittizio" := "Misuratore Fittizio";
    RecMisuratori.INSERT(TRUE);

    RecUtenze."Matricola Misuratore" := RecMisuratori."Nr.";
    RecUtenze."Data Apertura Misuratore Util." := RecMisuratori."Data Apertura";
    RecUtenze."Valore Apertura Misuratore" := RecMisuratori."Valore Apertura";

    "Nr. Matricola Misur." := RecUtenze."Matricola Misuratore";
    "Data Ap. Misuratore" := RecUtenze."Data Apertura Misuratore Util.";
    "Lettura Iniziale Misur." := RecUtenze."Valore Apertura Misuratore";
    END;
    END;

    IF "Nr. Matricola Misur." <> '' THEN BEGIN
    IF NOT RecMisuratori.GET("Nr. Matricola Misur.") THEN
    ERROR(Text002,"Nr. Matricola Misur.");

    IF RecMisuratori."Stato Misuratore" = RecMisuratori."Stato Misuratore"::Attivo THEN
    ERROR(Text003,"Nr. Matricola Misur.", RecMisuratori."Codice Utenza");
    END;

    RecUtenze.INSERT(TRUE);
    "Nr. Utenza" := RecUtenze."Nr.";
    MODIFY(TRUE);

    IF RecSbocchi.GET(RecUtenze.Sbocco) THEN BEGIN
    RecSbocchi."Nr. Utenza" := "Nr. Utenza";
    RecSbocchi.MODIFY(TRUE);
    END;

    //IF "Nr. Matricola Misur." <> '' THEN
    // CUFunzioniMisuratore.ApriMisuratore(RecUtenze);

    IF "Nr. Matricola Misur." <> '' THEN
    IF RecMisuratori.GET("Nr. Matricola Misur.") THEN BEGIN
    CUFunzioniMisuratore.InstallaMisuratore(RecUtenze);
    IF RecMisuratori."Stato Misuratore" = RecMisuratori."Stato Misuratore"::Attivo THEN
    CUFunzioniMisuratore.ApriMisuratore(RecUtenze);
    END;


    // Registrazione Automatica Depositi Cauzionali
    IF RecSetup."Reg. Autom. Dep. Cauz." THEN
    CASE "Tipo Versamento Dep. Cauz." OF
    "Tipo Versamento Dep. Cauz."::Bolletta :
    CUDepCauz.RegistraInRS(Rec);
    END;

    MESSAGE(Text005,RecUtenze."Nr.","Nr.");
  • DenSterDenSter Member Posts: 8,307
    You hard code a GET for all these records, so you have to make sure that they exist, or program around the error. I don't see what else you need from this. What exactly is your question?
  • nardionlinenardionline Member Posts: 34
    I already solved it.
    It just needed to add a line , type warning , PCNOCATLI
    Thanks for everything
Sign In or Register to comment.