(FR) Du00E9claration TVA Intracom  : schu00E9ma de calcul sur piu00E8ces par BAPI ?

Bonjour à tous,
Nous intégrons des pièces comptables  par l'Idoc ACC_DOCUMENT (qui appelle BAPI_ACC_DOCUMENT_POST) avec pour chaque ligne de charge, de produit ou de TVA,  le code TVA idoine.
Le poste Client ou fournisseur recoit '**' en code TVA .
Nous intégrons EGALEMENT (dans 90% des cas)  les lignes de taxes dans la pièce avec le montant de TVA et le monatnt de base .
Or nous constatons que lors de la déclaration préalable de TVA (transaction S_P00_07000111), les pièces sur TVA Intracom sont recalculés, que  l'on ait inséré ou non la ligne de TVA .
A l'inverse, pour les autres codes de TVA, si nous ne créons pas la ligne de TVA dans la pièce, il n'y a pas de montant de TVA indiqué .
Nous souhaitons au final ne pas transférer les postes de TVA intracom et les voir recalculés par SAP , à partir des codes TVA définis pour la pièce .
Mais nous devons nous assurrer que ce fonctionnement est pérenne donc connaitre le paramètrage qui permet de gérer cette différence de comportement .
Les notes OSS 0000869540  "Posting direct tax to tax account" , 0000149333 "Duplicated BSET entries for manual tax posting" & 0000741237 "RFUMSV00_FAQ" ne nous ont pas permis de comprendre
Un grand merci d'avance pour votre aide,
Cordialement,
Cyril Defossez

Similar Messages

  • Calcul sur les 2 dernières lignes d'un tableau dont le nombre de lignes croît.

    Bonjour, 
    Je voudrais effectuer un calcul (soustraction de 2 lignes consécutives) dans un tableau qui se construit au fur et à mesure d'itérations.
    A la première itération, mon tableau ne possède qu'une ligne et mon calcul n'est pas possible.
    A la 2e itération, j'ai deux lignes et je peux commencer le calcul (Ligne2 - Ligne1)
    A la 3e .... idem ((Ligne3 - Ligne2) etc.
    Ma contrainte est de toujours effectuer ce calcul sur les 2 dernières lignes. De plus, je n'arrive pas à gérer la première itération durant laquelle il ne se passe rien puisque le calcul n'est pas possible.
    Merci pour vos lumimères. 
    Manu
    Solved!
    Go to Solution.

    Bonjour ManuLab,
    est-ce que vous connaissez les registres à décalage ou encore l'auto-indexation de boucle?
    Voici en pièce jointe un VI (LabVIEW 2012) pour réaliser ce que vous souhaiter faire.
    J'espère que ceci pourra vous aider
    Cordialement,
    Audrey_P
    National Instruments France
    #adMrkt{text-align: center;font-size:11px; font-weight: bold;} #adMrkt a {text-decoration: none;} #adMrkt a:hover{font-size: 9px;} #adMrkt a span{display: none;} #adMrkt a:hover span{display: block;}
    Journées techniques : des fondamentaux aux dernières technologies pour la mesure et le contrôle/comm...
    Attachments:
    exemple.vi ‏12 KB

  • Bjr, j'utilise Firefox depuis longtemps et les liens ne s'ouvrent plus certains sites. Aucun souci sur IE par contre

    Bjr,
    j'utilise depuis longtemps mozilla firefox sans problème.
    Depuis quelques semaines, des liens ne s'ouvrent plus sur certains sites uniquement. J'essaie sur IE et ils s'ouvrent bien.... donc cela provient bien de mozilla.
    Quel pourrait être le problème ???
    Merci d'avance
    PS - je suis novice en informatique, j'ai besoin d'informations claires pour si manipulations longues et compliquées...

    Bj, voici ma solution quand j'ai ce genre de problème, que Firefox semble corrompu.
    ->Restaurer Firefox dans son état initial. Vous conserverez vos favoris, votre liste de mots de passe. Seuls les paramétrages perso dans "options" seront à reconfigurer.
    1/cliquez sur le bouton "Firefox" > "aide" > "Informations de dépannage" 2/cliquez sur "Réinitialiser Firefox..." vous retrouver un Firefox tout neuf :)

  • BAPI_ACC_DOCUMENT_POST not calculating TAX

    Hi,
    I am using BAPI_ACC_DOCUMENT_POST for posting the FI document for RC type. I tried posting it normally and it posted correctly. But when i give some ACCOUNT TAX information, it is not calculating.
    Here is how I am filling the details.
    Header:
    BUS_ACT = RFBU.
    USERNAME = SY_UNAME.
    HEADER_TEXT = TEXT.
    COMP_CODE = BUKRS.
    DOC_DATE = 12/12/2011
    PSTNG_DATE = 12/05/2011.
    FIS_PERIOD = 00
    REF_DOC_NO = 9700000036.
    AC_DOC_NO = 9700000036.
    Account GL Table:.
    ITEMNO_ACC = 10.
    GL_ACCOUNT = 412010.
    DOC_TYPE = RC.
    COMP_CODE = RECN.
    FIS_PERIOD = 00.
    PSTNG_DATE = 12/05/2011
    TAX_CODE = TN
    TAXJURCODE = TN3707600
    COST CENTER = 107
    Account Receivable:
    ITEMNO_ACC = 20.
    CUSTOMER = 1126045
    COMP_CODE = RECN
    BLINE_DATE = 12/12/2011.
    PYMT_METH = B
    CURRENCY AMOUNT : 2 LINE ITEMS
    1ST LINE ITEM
    ITEMNO_ACC = 10
    CURRENCY = USD
    AMT_DOCCUR = 500.00-
    DISC_BASE = 500.00-.
    2ND LINE ITEM
    ITEMNO_ACC = 20
    CURRENCY = USD
    AMT_DOCCUR = 500.00
    AMT_BASE = 500.00.
    I did not enter the account tax table as I am not sure how to enter the date. But I know that the tax rate is 9.25% and for 500 the tax would be 42.33. I need to make sure that the BAPI posts the document as it posts from FB01 when we check the check box 'calculate tax'. Right now, with these details it is posting the data but not calculating the tax.
    Please help.
    Regards
    Guru
    Edited by: GuruCharan on Dec 15, 2011 6:28 PM

    Raymond,
    Thanks for the reply. I did read the notes you have suggested. They are quite informative but unfortunately -
    Note 367175 is related to the other BAPI`s. My issue is with the BAPI_ACC_DOCUMENT_POST.
    Note 487064 is related to the error when the tax amount is greater than the base amount.
    Since I am using the Acc document post BAPI, please help me understand how to fill in the data for ACCOUNT TAX table or post the document from the BAPI along with the tax as it does in FB01.
    Thanks Again,
    Regards,
    Guru.

  • Erreur de calcul amplitude FFT à f = 0Hz

    Avec l'objet sousMesuresSpectrales [subSpectralMeasurements.vi] de la librairie LabView, sous LabVIEW7.1\vi.llb\express\express analysis\SpectralBlock.llb, je constate un problème de calcul sur la FFT pour fréquence = 0 Hz en amplitude.
    Dans mon application, j'ai exporté ce VI express pour n'utiliser que certaines de ses fonctionnalités, en autres propriétés : "Paramètres du signal" pour afficher sa FFT.
    Normalement, à la fréquence = 0Hz, l'amplitude max et efficace doivent être identiques et correspondre à la composante continue i.e DC value. Ce résultat n'est pas observé. J'observe le rapport racine de 2 habituel pour une valeur pic ou RMS à f = 0Hz.

    A présent , je réussis à mesurer mon accélération, obtenir le déplacement et ma vitesse ( pour tenir compte du gabari ) et je réalise un singnal sinusoidale de fréquence variable ! Dois-je utiliser la fonction PID pour mon asservissement ?
    Je ne sais également pas comment tenir compte des points de cassures de mon "gabari" présent en pièce jointe auparavant ? Help

  • Recommencer le vi sur commande et autre commande bouton

    Bonjour,
    Grace à vous et à un peu de travail (je compte plus mes heures! ), j'ai pu finaliser mon vi ! Enfin presque !
    En effet, actuellement lorsque je lance mon vi je recupere différentes informations, fais divers calculs sur tableau, puis affiche des graphes xy et puis...le vi s'arrete !
    Je souhaiterais finaliser un peu les choses en mettant des boutons !
    En effet j 'aimerais lorsque ma premiere courbe est tracée avoir un arret du script (sans sortir completement du vi) et qu'il se poursuive en fonction du choix de l'opérateur suivant 3 boutons :
    1) bouton STOP, on sort définitivement du vi.
    2) Bouton RELANCER, on relance le vi au début (l'opérateur ayant pu changer un parametre de la face avant préalablement - "Valeur variable a chaque lancement" sur le vi en PJ,) une nouvelle courbe se trace alors (j'ai alors deux courbes XY - ce qui pose peut etre un problème de stockage des valeurs précédentes ?).
    3) RAZ pour effacer la ou les courbes déja réalisées avant un nouveau lancement du VI.
    Je met en PJ en tout petit vi, ou j'ai commencé une strucutre evenement ! Mais est-ce déja le bon principe ? dois je mettre le script principale dans la boucle while ? faut-il dailleurs une boucle while car la j'ai pas vraiment le comportement voulu (car cela tourne en boucle !) ? j'ai cherché des tuto, des exemples, mais pas grand chose ou bien compliqué à comprendre pour le débutant que je suis !
    Auriez vous des pistes, conseils, astuces, bout de vi pour m'aider à finaliser tout cela, car là je suis un peu coincé !
    Merci de votre aide
    Résolu !
    Accéder à la solution.
    Pièces jointes :
    Bouclage vi 1.vi ‏69 KB

    " ça bloque " ...
    voudrais-tu dire par là que ton bouton " ok " .... c'est à dire ton bouton " lire la vidéo " ... ne répond pas ?
    Tu fais "start" ... ton programme s'exécute ... mais plus moyen d'actionner le bouton "lire la vidéo" ... ?
    c'est ça ?
    PS:
    ta structure séquence et ses multiples frames ne servent à rien.
    Tout est parfaitement définit par le flux de données ... elle est inutile.
    (rien avoir avec ton soucis de "blocage")

  • Keynote sur iPad

    Je suis très déçu de Keynote sur iPad  qui perd de super fonctionnalités par rapport à Keynote sur Mac, par exemple le déplacer et la fonction échelle qui permettent de zoomer par exemple sur une partie d'une image.
    Ce n'est plus  Keynote mais  Power Point sur iPad !

    Are you trying to download these apps? Possibly for free on a new iPad?
    How to get all the iWork apps, iPhoto, and iMovie for free on an eligible iPhone or iPad
    http://www.imore.com/how-get-all-iwork-apps-iphoto-and-imovie-free-eligible-ipho ne-or-ipad
    About Free Apple Apps for iOS 7 compatible devices
    http://support.apple.com/kb/HT5913
     Cheers, Tom

  • Tracer un profil sur un graphe XY

    Bonjour,
    Le but de mon VI est de réaliser un profil sur un graphe XY.
    Pour cela, je renseigne les données à partir d'un tableau de cluster, et dès lors que j'appuie sur suivant, par l'intermédiaire d'une structure event, je trace la portion de mon graphe associée.
    Cependant, lorsque j'exécute, je rencontre pas mal d'incohérences et j'ai du mal à voir d'où cela peut-il venir..
    Si quelqu'un trouve d'ù pourrait venir le problème, je suis preneur..
    Cordialement
    Pièces jointes :
    Scenario_key_final_2.vi ‏102 KB

    ci-joint un exemple vite fait, je n'ai pas repris ton code, j'ai fait ça juste pour te donner un exemple, si tu veux te baser dessus tu auras quand même pas mal de travail à faire.
    je n'ai pas géré l'affichage du graph ni la gestion de l'ordre des étapes (avec un indice dans le nom de l'étape).
    par ailleurs j'ai utilié un variant avec des attributs pour conserver en mémoire les données dont j'ai besoin comme le nom du fichier et l'indice de l'étape sélectionnée, pour un variant... c'est pas du tout nécessaire mais c'est souple si jamais on veut ajouter des choses par la suite.
    n'hésite pas à poser des questions si il y a des choses que tu ne comprends pas dans mon exemple, je l'ai fait un peu vite donc il y a des défauts dedans...
    When my feet touch the ground each morning the devil thinks "bloody hell... He's up again!"
    Pièces jointes :
    edit seq.vi ‏74 KB
    test.ini ‏1 KB

  • Calcul TRMS - Intégral sous labview

    Bonjour,
    je tente de réaliser les calculs éffectués par un appareil TRMS. Il y a donc une intégrale (entre autre) à réaliser, mais je n'arrive pas à la faire, j'ai éssayé plusieurs boite différente mais sans résultats. Pourriez vous m'aider svp?
    Je souhaite donc réalisé le calcul suivant sous labview :
    Merci
    Chef de Projet
    ERM Automatismes Industriels
    Certified LabVIEW Associate developer
    Résolu !
    Accéder à la solution.

    Bonjour,
    si vous avez un dt constant, alors vous pouvez faire comme ceci :
    Sinon, si votre dt est variable, il faut pondérer chaque dt, c'est aussi faisable je pense.
    En espérant que cela vous aide,
    V-F
    Pièces jointes :
    formula.png ‏15 KB

  • Problème de build sur field point

    J'ai construit mon application à mettre dans FP dans un blank vi, dans "tools" -> "buid an application..."
    il n'a pas créer de "ni-rt\startup\..." du coup au lancement de field point le programme ne se lance pas, et lorsque je vais sur RT par Labview (son adresse est 10.10.10.25) il me mets qu'il ne trouve pas le fichier "AR_RT_Prog.vi" dans l'adresse "c:\ni-rt\startup\`startup.exe\AR_RT_Prog.vi".
    Comment faire pour supprimer cette application erronée, et comment faire le build correctement?

    Bonjour,
    le dossier date de quelques temps mais je n'ai pas eu le temps de vous
    contacter plus tôt. Veuillez trouver ci joint les images des écrans que
    j'obtiens quand je change de cible d'éxecution en passant sur RT.
    J'ai compilé très simplement, il n'y a pas beaucoup de possibilité de toute
    façon sous RT.
    "au basculement vers RT0.bmp" et "au basculement vers RT1.bmp" se passent
    quand je bascule sous RT, un autre cas possible est montré par l'image
    "aussi au basculement.bmp".
    Avez vous déjà vu ce problème?
    Attachments:
    au_basculement_vers_RT0.jpg ‏32 KB
    au_basculement_vers_RT1.jpg ‏35 KB
    aussi_au_basculement.jpg ‏134 KB

  • Error while provisioning roles (SetABAPRole&ProfileForUser)

    Hi Experts
    While provisioning roles in IDM 7.2, I see this error in the Job logs:
    Failed running function in string "$FUNCTION.sap_abap_getNameOfAssignedPendingPrivileges(mskey!!repname!!role!!true)$$". Marking entry as failed. Exception was: undefined: "sap_abap_convertToABAPValidFromDate" is not defined.
    I am getting this error only if I provision the existing SAP users. Assigning any role to a new user works fine. Went through both the above mentioned scripts, but don't see any Problem there.
    What am I missing here?
    Best regards
    Annapurna

    Hi Annapurna,
    I was just going through the setup in our landscape and noticed that we have only one script for Assign User Membership to ABAP which is "sap_abap_getNameOfAssignedPendingPrivileges"
    As mentioned by Jai earlier, we have the same script as Jai.
    Can you try by using the below script for "sap_abap_getNameOfAssignedPendingPrivileges" and delete the other two and try to execute?
    Not sure, if this could work, but maybe can give a try.
    Script below:
    ===============================================
    // Main function: sap_abap_getNameOfAssignedPendingPrivileges
    * Returns a list of all privileges with properties {validfrom, validto} of the
    * passed user for the passed repository and the passed privilege type.
    * It contains all already assigned privileges plus/minus the delta of the
    * current pending added and/or removed privileges.
    * Note: Needed by connectors that always send the complete list of privileges
    *       to the backend, e.g. ABAP, BusinessSuite, JAVA
    * @param {Par} Format:
    * MSKEY of user!!repository name!!privilege type<!!includeValidityProperty>
    *              e.g. 172645!!BQQ001!!PROFILE!!TRUE
    * @return {String} List of Privilege (backend) names in format:
    * if includeValidityProperty is defined as true, then
    * {VALIDFROM=<date>!!VALIDTO=<date>}<priv>|{VALIDFROM=<date>!!VALIDTO=<date>}<priv>|{VALIDFROM=<date>!!VALIDTO=<date>}<priv>
    * else
    * <priv>|<priv>|<priv>
    function sap_abap_getNameOfAssignedPendingPrivileges(Par) {
    importClass(java.lang.StringBuffer);
    // enable this flag (tracingEnabled) only for debugging purposes as this will impact the performance
    var tracingEnabled = false;
    uInfo("sap_abap_getNameOfAssignedPendingPrivileges:: is called with " + Par);
    var parameters = Par.split("!!"); 
    var mskey = parameters[0];
    var repositoryName = parameters[1];
    var privilegeType = parameters[2];
    var addValidityProperty = false;
    if (parameters.length > 3 && parameters[3] != null && parameters[3].toLowerCase() == "true") {
    addValidityProperty = true;
    uInfo("sap_abap_getNameOfAssignedPendingPrivileges:: mskey: " + mskey);
    uInfo("sap_abap_getNameOfAssignedPendingPrivileges:: repositoryName: " + repositoryName);
    uInfo("sap_abap_getNameOfAssignedPendingPrivileges:: privilegeType: " + privilegeType);
    uInfo("sap_abap_getNameOfAssignedPendingPrivileges:: addValidityProperty: " + addValidityProperty);
    var nolock = "";
    if("%$ddm.databasetype%" == 1) { //MS-SQL
    nolock = "WITH (NOLOCK)";
    if (tracingEnabled) {
    sap_debug_logUserAssignments(mskey);
    * - get only assignments (mcLinkType = 2)
    * - get all assignments of current entry X (mcLinkState = 0, mcExecState = 1 & mcDisabled = 0)
    * - and with assignments in state "pending add" (mcLinkState = 1 & mcExecState = 512 or 513,
    mcDisabled can be 1 e.g. if the user gets reactivated)
    * - assignments with mcExecState 2 (Rejected) and 4 (Failed) are not included. If a failed
    * assignment gets retried, the state changes immediately to pending.
    * - for specfified repository Y
    * - and privilege type Z
    * - add member task must have been running for the privilege (mcAddAudit IS NOT NULL)
    -> no future assignments
    -> no assignments for which an approval will be done but approval task is not yet running
    * - no privileges for which an approval is needed/running
    * mcValidateAddAudit < mcAddAudit <- approval is already done
    * or mcValidateAddAudit IS NULL <- if no approval is necessary
    * - no duplicate privilege names (-> SELECT DISTINCT) in case of contexts
    var sql = "SELECT DISTINCT privilegename.mcMSKEYVALUE, assignment.mcValidFrom, assignment.mcValidTo \
    FROM idmv_value_basic_all repositorynames " + nolock + " \
    INNER JOIN idmv_value_basic_all privilegetype " + nolock + " ON privilegetype.mskey = repositorynames.mskey \
    INNER JOIN idmv_entry_simple privilegename " + nolock + " ON privilegename.mcMSKEY = repositorynames.mskey \
    INNER JOIN mxi_link assignment " + nolock + " ON assignment.mcOtherMskey = repositorynames.mskey \
    WHERE assignment.mcThisMskey = " + mskey + " \
    AND assignment.mcLinkType = 2 \
    AND (\
    (assignment.mcLinkState = 0 AND assignment.mcExecState = 1 AND assignment.mcDisabled = 0) \
    OR (\
    assignment.mcLinkState = 1 AND assignment.mcExecState  IN (512,513) \
    AND ( \
    (assignment.mcAddAudit > assignment.mcValidateAddAudit) \
    OR \
    (assignment.mcAddAudit IS NOT NULL AND assignment.mcValidateAddAudit IS NULL) \
    AND repositorynames.attrname = 'MX_REPOSITORYNAME' AND repositorynames.SearchValue = '" + repositoryName + "' \
    AND privilegetype.attrname = 'MX_PRIVILEGE_TYPE'  AND privilegetype.SearchValue = '" + privilegeType + "'";
    //result looks like privMskeyValue!!privMskeyValue!!privMskeyValue
    var result = uSelect(sql);
    uInfo("sap_abap_getNameOfAssignedPendingPrivileges:: SQL Query:\n" + sql);
    uInfo("sap_abap_getNameOfAssignedPendingPrivileges:: Result: " + result);
    var allPrivsStringBuf = new StringBuffer();
    var firstElement = true;
    if (result != null && result != "") {
    var resultArray = result.split("!!");
    for (var i = 0; i < resultArray.length; i++) {
    var columns = resultArray[i];
    var columnArray = columns.split("|");
    //privMskeyValue is like PRIV:<type>:<repository>:<privilegeName>
    var privMskeyValue = columnArray[0];
    var repTemp = privMskeyValue.split(":");
    var repstring = repTemp[0] + ":" + repTemp[1] + ":" + repTemp[2] + ":";
    var privName = uReplaceString(privMskeyValue, repstring, "");
    if (!firstElement) {
    allPrivsStringBuf.append("|");
    if (addValidityProperty) {
    var validfrom = columnArray[1];
    var validto = columnArray[2];
    allPrivsStringBuf.append("{VALIDFROM=");
    allPrivsStringBuf.append(validfrom);
    allPrivsStringBuf.append("!!VALIDTO=");
    allPrivsStringBuf.append(validto);
    allPrivsStringBuf.append("}");
    allPrivsStringBuf.append(privName);
    firstElement = false;
    var allPrivs = String(allPrivsStringBuf); // must be casted explicitly to String
    uInfo("sap_abap_getNameOfAssignedPendingPrivileges:: Calculated privileges for " + Par + " are: " + allPrivs);
    return allPrivs;
    * Prints out all assignments the user has (also all assignments in pending remove state etc.)
    function sap_debug_logUserAssignments(mskey) {
    var columns = "mcUniqueId, mcThisMSKEY, mcOtherMSKEY, mcAttrName, mcThisOcName, mcOtherOcName, mcThisMSKEYVALUE, mcOtherMSKEYVALUE, mcLinkState, mcAssignedDirect, mcAssignedInheritCount, mcExecState, mcExecStateHierarchy, mcChangeNumber, mcGroupGuid, mcLastAudit, mcAddedTime, mcModifyTime, mcValidateAddAudit, mcAddAudit, mcContextMSKEY, mcContextCategory, mcContextStr1, mcContextStr2, mcOrphan, mcSoDViolation, mcNotAllowedFor, mcUnsupportedContextType, mcMissingConditionalContext, mcDisabled, mcRequestID";
    var debugSql = "SELECT " + columns + " FROM idmv_link_ext WHERE mcThisMskey = " + mskey + " ORDER BY mcUniqueId";
    var debugResult = uSelect(debugSql);
    //format output
    debugResult = uReplaceString(debugResult, "!!", "\n");
    debugResult = uReplaceString(debugResult, "\|", "\t");
    columns = uReplaceString(columns, ", ", "\t");
    uInfo("sap_abap_getNameOfAssignedPendingPrivileges:: Debug SQL Query:\n" + debugSql);
    uInfo("sap_abap_getNameOfAssignedPendingPrivileges:: Debug Result:\n" + columns + "\n" + debugResult);
    Thanks & Regards,
    V!

  • Timers Multithread sous CVI

    Bonjour,
    J'ai plusieurs questions concernant mon programme avec LabWindows CVI 9.0 et 4 cartes NI PCI 6229, sous Windows XP et dual core Intel 3GHz.
    Je souhaite réaliser un programme qui réalise une boucle d’asservissement et également un contrôle et affichage sur des acquisitions. Je n’ai malheureusement pas le choix sur l’OS et je ne peux pas m’orienter sur une solution temps réel.
    Pour cela, je souhaite réaliser
    -          une boucle qui gère l’asservissement (acquisition sur 20 entrées, calcul sur ces acquisitions, et génération sur 10 sorties, tout ceci en 10ms, c’est la BOUCLE CRITIQUE)
    -          une boucle pour le contrôle (simple contrôle sur ces acquisitions: comparaison à une valeur seuil, 10ms)
    -          une boucle pour l’affichage (affichage des résultats sur la face avant des contrôles OK ou non OK, toutes les 200ms)
    Je souhaitais à la base utiliser 3 timers asynchrones de CVI, mais je me suis aperçu qu’on ne pouvait utiliser qu’un seul Timer asynchrone à la fois.
    J’ai donc vu qu’il y avait une autre solution, le multithread en utilisant les thread pool. Cette solution m’intéresse, car je souhaiterai mettre la boucle critique dans 1 thread sur le 1er coeur, la boucle de contrôle dans un 2ème thread sur le 2ème coeur, et la boucle d’affichage dans un 3ème thread sur le 2ème coeur.
    La boucle d’asservissement est la boucle critique et doit être de 10ms à +/- 2ms.
    Les autres bouclent ne sont pas critiques et peuvent avoir un décalage de +/- 10ms, le but est de ne pas perdre de données et de contrôler toutes les acquisitions. Un affichage toute les 200ms suffit.
    Voilà j’ai alors 2 questions :
    -          est-ce que mon approche (timers en multithread et diviser sur les 2 cœurs) convient pour mon application ?
    -          et comment mettre un timer classique dans un thread spécifique ? J’ai vu qu’il fallait utiliser «CmtScheduleThreadPoolFunction (int Pool_Handle, ThreadFunctionPtr Thread_Function, void *Thread_Function_Data, int *Thread_Function_ID)” Mais cette fonction appelle une fonction de type “CVICALLBACK FonctionThread(void *functionData)” et mon timer classique est de type “CVICALLBACK Timer_Classique (int panel, int control, int event, void *callbackData, int eventData1, int eventData2)” Comment donc appeler un timer classique avec une fonction CmtScheduleThreadPoolFunction ? Faut-il procéder d’une autre manière ?
    Je vous remercie de votre aide.
    Cordialement,
    Hédi.

    Bonjour,
    L'approche multi-thread est en effet la bonne, dès qu'il faut séparer plusieurs tâches. Je vous invite à consulter cet article du Rebel Site, qui traite du multithread et constitue une référence en la matière. Attention, le multithread n'implique pas obligatoirement une gestion multicoeur. Il faut pour le mettre en oeuvre passer par l'API de Windows.
    Est-il bien nécessaire de faire de du contrôle 10ms? (deuxième boucle) Au quel cas, je ne suis pas absolument sûr qu'il faille créer un thread séparé. Si cette tâche peut supporter un cadencement plus lent, il serait plus malin de venir la traiter dans le troisième thread.
    Il serait intéressant d'utiliser une Thread Safe Queue pour faire circuler les données d'un thread à l'autre. Ce mécanisme permettra de ne pas perdre de données. D'autre part, vous pouvez alors installer une callback sur un nombre d'éléments dans la TSQ (Thread Safe Queue) et venir déclencher la callback associée à cette TSQ dès que 20 éléments sont présents pour piloter le troisième thread depuis le premier.
    Dans cette configuration, il n'y a plus besoin que d'un timer, pour la partie temps critique - bien que sous Windows, on ne puisse pas garantir le déterminisme d'une boucle à 10ms - les autres thread étant 'esclave' du premier.
    Cordialement,
    .mrLeft{float:left} .mrInfo{border-left:solid 1px #989898;font-size:x-small;color:#989898}
    Mathieu R.  
      CTD - Certified TestStand Developer / Développeur TestStand Certifié  
      CLAD - Certified LabVIEW Associate Developer  

  • Indicateurs DBL dans fichiers tdms

    Bonsoir,
    J'aimerai utiliser pour enregistrer mes données les fonctions TDMS.
    Cela semble très pratique et il me semble que cela peut gérer d'énormes fichiers.
    J'aimerai enregistrer toutes les 100ms, pendant 1 heure, 16 valeurs numériques qui decoulent de calculs (sur mon vi, ce sont 16 indicateurs tout simple DBL 32 bits)
    Après avoir ouvert mon fichier TDMS avec le bloc TDMS-ouvre, je ne vois pas comment raccorder ces 16 valeurs numériques sur un bloc TDMS-Ecrire ?
    J'aimerai aussi pouvoir associer à ces 16 valeurs une date et une heure que je pourrai afficher en relisant le fichier TDMS.
    Merci par avance pour vos aides (dans les exemples, je ne trouve que des enregistrements de signaux types sinusoides...)
    et désolé si mon problème vous parait simple mais j'ai des difficultés à prendre en main Labview.
    DC.

    Bonjour DavCaz,
    Vous trouverez ci-joint un exemple permettant de réaliser l'opération souhaitée.
    Autrement pour prendre la main sur LabVIEW, et l'utilisation des fichiers TDMS, je vous encourage à prendre connaissance des informations présentes depuis notre site internet sur le sujet:
    1 - Getting Started with NI LabVIEW Student Training
    2 - The NI TDMS File Format
    Je vous souhaite une bonne journée,
    Rémi D.
    National Instruments France
    #adMrkt{text-align: center;font-size:11px; font-weight: bold;} #adMrkt a {text-decoration: none;} #adMrkt a:hover{font-size: 9px;} #adMrkt a span{display: none;} #adMrkt a:hover span{display: block;}
    >> Les rencontres techniques de NI - Mesures et acquisition de données : de la théorie à la mise en ...
    Pièces jointes :
    TDMS- Demo.vi ‏15 KB

  • Last Value of a KF

    Hi All!
    I am having requirement in BEX as follows:
    This is the existing scenarion.
    Mat. Gr.  Fisc Yr/P  Sales Qty  MAP    Raw MatCost(Cumm)
                         (Cumm)
    X        09.2005     10          5      50 (10*5)
             10.2005     20          4      80 (20*4)
             11.2005     30          7      210(30*7)
        Total           30          5.3    210
    My new scenario will be that the MAP should be taken always as the last value i.e 7 in this case and it should be multiplied by the sales quantity to derive the Raw Material Cost i.e the New Raw Mat. Cost should be 70, 140, 210 for fiscal period 9,10 & 11 respectively. The sales qty & the Raw Mat Cost have been shown cummulative. How can I achieve this in the BEX? Please advise me. Thanks

    Hi Madhu,
        Displaying a Material BOM
        Displaying a Structure Overview
        General Functions in the SAP Environment 
        General Functions in the SAP Environment
    This link will give you all above details. This helps in calculation . sure it solves the problem.
    https://www.sdn.sap.com/irj/servlet/prt/portal/prtroot/docs/library/uuid/5d03a090-0201-0010-0597-f87213b26d53
    Thanks
    VJ

  • Problème synchronisation PCI 6733

    Bonjour,
    Ce post est un peu la continuation d'un autre initié sur la base d'une PCI 6733. Les voies analogiques sont le résultat de calculs, 1 seconde de signal est préalablement calculé et envoyé aux buffeurs de la carte. Parallèlement les signaux digitaux sont eux aussi calculé sur cette durée de 1s et envoyés au même moment que les voies analogiques dans la tache correspondante (les fréquences d'échantillonnage des signaux sont les mêmes, ie même nombre de points analogiques et numériques. Pour chaque type de voie 10 buffeurs sont définis (donc un décalage de 10 entre ce qui calculé et ce qui est joué).
    Ma question: de temps en temps, on peut constater en sortie de carte un décalage (non fixe, entre 100ms et plus d'une seconde) de synchronisation entre les voies analogiques et numériques. A l'envoi sur les taches Dacqmx, les voies sont synchrones, en sortie de carte PCI 6733, elles ne le sont plus.
    1/ Sachant que le problème est aléatoire, et qu'un arrêt de l'application et un redémarrage suffise pour que tout rentre dans l'ordre, puis-je trouver un moyen de détecter ce problème et le signaler à l'utilisateur via l'interface?
    2/ D'ou pourrait venir ce décalage , et surtout comment s'assurer de la synchronisation des 2 types de voies?
    Merci pour votre aide,
    Cordialement.

    Bonjour,
    Avez-vous fait un benchmark de vos calculs ?
    Combien de temps prend un calcul d'une seconde de signal? Il serait intéressant de connaitre cela.
    Par ailleurs, il y a des fonctions DAQmx qui permettent de connaitre l'état du buffer de la carte. Cela pourrait donner une indication supplémentaire sur l'origine du problème.
    Afin de mieux vuos aider, pouvez-vous nous dire en quoi vous développez : LabVIEW, CVI, autre ?
    Cordialement
    Jean-Philippe C.
    National Instruments France

Maybe you are looking for

  • Can an iMac be used for WD My Book Live safepoints?

    I have a Western Digitial My Book Live network drive.  All Mac's and PC's can read/write without a problem.  I would like to create a safepoint (WD term for backup) on an iMac but can't seem to get past correctly discovering the devices on the networ

  • How to open raw files from panasonic gx7 camera in lightroom 4

    just purchase panasonic gx7 camera unable to open raw files in elements 9,elements 11,lightroom 4 but will open in trial version of lightroom 5.have downloaded dng 8.2,still no joy.has anybody any suggestion

  • Flash button problem

    Hi I am quite new to actionscript but when building a simple app that calculates amounts when you press on a button it only works if I use a library button and not my customised one. I have checked that the button is a button symbol and has four stat

  • StoreFront : Payment and Shipping group relationships are missing for some orders

    Hi Team, In our application, we are able to see relationship between payment and shipping group for some orders. But we are not able to find these relationships for some orders. We are verifying in "dcspp_payship_rel" table. We are wondering why this

  • O.K Just tell me how to get my old version of iTunes ..

    I have no plans on indulging in an iPhone, so how do I get beack my previous version before 7.3.1 I purchased this music to use in videos and have been cut off from all of it by this iPhone update , I have authorized and deAuthorised both computers a