Profile of Stimulus call API Veristand leads do not have test

I wan´t to call a stimulus program profile file. I discovered that there are no VI to do this in the API of the LabVIEW VeriStand (for the profile editor of stimulus inherited such a VI exists). But in the example finder is a VI that uses the API .NET VeriStand Edifier present (http://forums.ni.com/t5/NI-VeriStand/Start-Stimulus-Profile-from-LabVIEW/m-p/1789162). Furthermore, someone created a custom control for the workspace that uses this .NET invoke (http://www.ni.com/example/31335/en/). Two examples of work in general, but I have a problem that I m not able to fix:

If I use a step of "update model parameters of a file" in the profile of stimulus to change the parameters of a model of the step will fail with the error: ' error:-307650. '. Details: object reference not set to an instance of an object. "This only happens if I use the API of VeriStand .NET managed to call the profile of stimulus. If I start the stimulus of the profile editor profile stimulus this doesn´t error occurs and the update of the model parameter works properly.

If I delete the step of "update model parameters of a file" the whole stimulus profile goes very well.

Anyone an idea how to solve this problem or how to call a stimulus with the API VeriStand profile file programmatically? Thanks for your suggestions in advance and have a nice day.

H.

I can reproduce what you see. You can very quickly get around this by making a call to the method of StimulusProfile CheckForErrors before his execution. This method is called by the Publisher of profile of Stimulus until it starts to run, and he must have some side effects which causes the update settings not work properly.

Tags: NI Products

Similar Questions

  • I used to have a box with the letters/folder called "All messages" - I do not have. Don't know what happened to her - I guess I could have deleted by accident? Can someone tell me how to get it back? Thank you

    I use the MAIL function on my MacBook Pro. I used to have a box with the letters/folder called "All messages" - I do not have. Don't know what happened to her - I guess I could have deleted by accident? Can someone tell me how to get it back? Thank you

    What do you mean 'all messages '? all mail entering, or email any or all all. ?

  • the substitution of variable in the profile of stimulus Editor

    Hi all

    I want suggestions on how to do it.

    So I put the system definition for one of the signals as model Output1--> channel 1--> PXI FPGA AO1 user

    Generally, the model output has controls the FPGA. However, I would like to substitute the output signal to another value to test a few flaws. I tried to substitute in the profile of stimulus Editor, but it would not work (for obvious reasons). I wonder what I can do to substitute the value of another signal that remove the mapping of model output 1 for channel 1 user whenever I want to test this fault.

    Thank you.

    Great question!

    If you use the new editor of profile of Stimulus in 2011 VeriStand, you can perform insertion for lack of software of a sequence in real time using a set of special functions, fault, and clearfault. Fault function allows you to activate a software problem a specific parameter is mapped to a string of system definition (condition it is faultable) to a specified value. This replaces any source can have this channel mappings. To clear the fault of software, call clearfault on the service.

    You can call these functions directly from the Expression. Here is some help on these and other features, you can call in a detailed sequence.

    For example, imagine that you have the following sequence and ao0 parameter is mapped to the string of PXI FPGA AO0 system definition. This sequence when run would fault the AO0 PXI FPGA channel to the value - 10.0, wait 5 seconds, and then clear the fault on AO0. If the fault is active, all mappings are substituted, and any attempt to set the channel failing of the workspace will also fail. When the problem is resolved, any source mappings will affect again.

    IMPORTANT NOTE: There is a bug in VeriStand 2011 which prevents a sequence of faults in real-time completely a channel if no other channel is currently failing in the system. The solution is to open the software tool Fault Manager of the workspace and the fault of some channels dummy, as a channel not used user, before running your sequence.

    • MySequence.nivsseq

      • Parameters

        • AO0

      • Code

        • Setup

        • Main

          • Expression: fault (ao0,-10,0)

          • Expression: Wait (5.0)

          • Expression: clearfault (ao0)

        • Cleaning

  • Issue of Python API and profile of Stimulus

    Hello

    I am using IronPython with Visual Studio 2010 to create automated tests of a PXI system I have. Most of my knowledge API (and Python) so far has been coming to this thread of Iron Python . Although very useful. I am not able to get the parts of profile of Stimulus work. I have command over the line, forcing the acquisition of basic data output voltage, but I was hoping that use the far more high-level control provide by VeriStand.

    My methodology so far has been 1) create a profile of Stimulus in the Editor (something simple like a shifted sine wave) 2) I do not specify a specific channel in the profile (because I want to use the same waveform on several channels, in order) 3) record 4) Point the Python script to the sinewave.nivstest of the file Run 5). Is there something wrong with this process?

    The problem is that 'running' is really doing nothing. I'll have to study this more within my reach, but the result is something (it begins almost at work!) but for something that should be hard about 20 seconds, it ends immediately after the first 'blip '.

    I use Iron Python 2.7, VS 2010 Shell. If it's important for some reason, I use a custom material OR and card FPGA DAQ. And I would say force SetChannelValue (X) works for all outputs.

    Thank you very much!

    It's probably because you're playing a stimulus that has no mapping. The same thing happens if you specify a mapping in the profile?

    Unfortunately, there is no API in NI VeriStand in 2010 to change the mapping. So that's all that you specify when you create with the GUI. However, the nivstest file is actually just XML so that you can use any XML parsing and API for editing to change the mapping. If you don't want to use an API for XML editing, you can try to use the technique in the VI posted on this thread to change the mapping.

  • Profile of Stimulus of departure of LabVIEW

    Hello

    I created 4 profiles of stimulation with the editor, and now I want to be able to start them with LabVIEW.

    Unfortunately most of the screws on the palette works with sequences instead of profiles. My profiles are configured with the parameter assignments and logging as well as sequence of calls. Is it possible to run profiles together instead of sequences?

    There are indeed. It is not a set of screws to use, but you can call directly the NationalInstruments.VeriStand.RealTimeSequenceDefinitionApi.dll assembly to access the functions and reminders for running a profile of stimulus.

    First of all, I would like to start by looking at the following example VI to help to start:

    \examples\NI VeriStand\API\Execution API\Sequences\Stimulus control profile Tool\Stimulus profile control Tool.vi

    It may be a little more complicated that you need, but it should have all relevant parts.

  • Profile of Stimulus running of the door of entry/host

    I would like to know if this is possible:

    Run a VeriStand project on one computer (the ' bridge') and run profiles of stimulus from another computer on the same subnet. I try to do that and specify IP address of gateway of the stimulus profile editor but get the error 307998:

    Compiler error...

    TopLevelSequenceFileDoesnotExist...

    But the sequence files are there. And I know it's to communicate with the gateway, because if I gave a bogus gateway address, I'd get different errors. Are there other details of configurations I need to know to run stmulus profiles to another computer?

    Thank you.

    You can run away from patterns of stimulus on another machine as the host of the gateway, but it requires some work to set it up properly. The problem is that when the stimulus profile specifies to run a real-time sequence, it specifies the file path is the path of the file on the gateway machine, and not on the local computer. So this is the problem, you probably see that the sequence exists on your local computer to the specified location, but not on the gateway machine.

    For example, if your profile of stimulus runs a sequence in real time to "c:\temp\mySequence.nivsseq", then this sequence should be in c:\temp on the gateway machine.

    You can do by storing sequences on a shared network location, which is the same for the gateway machine and the local machine. For example, if you have a file called myFiles server, you can then copy the sequences it and specify the path '\\allFiles\mySequences\mySequence.nivsseq '. It should work, because the path is the same of the local machine and the front door.

    Alternatively, you can map drive paths in Windows of hand and on the other to create the same virtual on the local drive letter and the host of the gateway.

  • frequency sweep performance in the profile of stimulus Editor

    Hi all

    I am trying to understand what is the best way to do this.

    I have an output signal. I want to start with a 5V signal, so I want to do it in a sine wave of amplitude of 0.05v starting at 1 Hz and gradually increase the Frequency, squirt up to 500 Hz. I know there is a sinusoidal wave function in the profile of stimulus Editor, but he seems to want to keep the fixed frequency.

    Thank you.

    There are a few options:

    1. your own sinewave sequence that will sweep the frequency while he plays. The integrated sine wave function is just a sequence that you can view and copy edit however you want. Double click in the palette to view the sequence.

    2 use multitasking and the sequence of the sinusoid built-in. The sequence of SineWave takes in a setting for the frequency, but it takes the value by reference. This means that if the value mapped to the frequency parameter changes so that the sine wave sequence runs, the frequency of the sine wave will update, too. This allows you to use a multi - load to run two parallel tasks: to call SineWave and one for the ramp of the frequency variable.

    Attached, is an example to help you make sense of it. Maybe it's not the exact logic you want, but should help you get some ideas going. I hope this helps!

  • Profile of stimulus so stop procedure

    Is there a way to stop a profile of stimulus through a procedure?

    Let's say that we have set up an alarm to trigger a procedure.  This alert is used to monitor a physical emergency stop button connected to a digital input.  When the condition of the track is low, we want to call a procedure to set all the outputs (analog and digital) to (usually low) security conditions.  So far, it's pretty simple.  But let's say that this alarm has occurred during a test (operation of a profile of stimulation).  How can we stop the profile of revival of the procedure to prevent the reactivation of these outputs?

    Thank you

    Damien

    Yes, there is a way to do this. There is a channel in the system of channels called State of the engine generator section. The value of the channel matches the State of the profile engine. It is a channel available in writing, so you can assign a procedure to change its State. The values are:

    0: idle

    1: running

    2: stopped

    3: paused

    So I set the channel 2 or 3 depending on whether you want to continue to run the profile in the same place later, or just stop it completely.

  • Ramping blamed the parameter in the profile of Stimulus Editor.

    Hello

    I am trying to familiarize themselves with the new Stimulus profile editor and encounter a problem I don't know how to solve.

    I have a model-driven setting. In one of my unit tests that I want to make a mistake on this parameter and the fault should scale the value exactly as the ramp function.

    I can do this within the profile of Stimulus editor himself or how can I do?

    / Johan

    You can do this with a custom real-time sequence. The easiest way would be to make a copy of the sequence of integrated ramp and modify it slightly to a fault of the parameter output instead of a simple assignment. You can open this sequence simply by double clicking it in the palette in sequences. If you open the sequence in real time of the ramp in the standard library, you will see the line where he attributes the current value of the ramp to the output parameter:

    RampOut = (I * Increment) + InitialValue

    All you have to do to change this from a standard to a fault assignment as assignment follows:

    fault (RampOut, (I * Increment) + InitialValue)

    Note there is a bug in the VM of real-time sequence that could not completely error a channel of the system unless another channel is currently failing. The easy solution is to create a dummy user and fault channels it in Manager fault channel of dialogue for the duration of your test.

  • The caller of the API do not have permission to perform this operation

    I generated an OAuth token and I get the following result every time that I have the query API (either directly or to try it out the tests here: https://secure.na1.echosign.com/public/docs/restapi/v5)

    {
    "message": "the caller of the API need not have permission to perform this operation."
    'code': "PERMISSION_DENIED".
    }


    I checked "on" for each single scope and set the modifier to the account (I also tried to change the group, but that made no difference). The key to OAuth has been authorized by the account used to register for this account of eSign. It is also a developer account, and it's under a user different from what I write under.


    Basically, all I want to do is get the status on all documents and see whether they are signed or not. I don't like that the user has permissions for that.


    Thank you!

    Hello Ollie,

    The error is specific to an API call or is happening with several API calls that you are trying to do with OAuth token? Can you inbox me your email address with which you have created the application API with OAuth?

    Kind regards

    -Usman

  • Call WebHelp of JS is not display content in frames

    Hello

    We use WebHelp on a UNIX server run from the cloud, to replace the Spartan help content - at best, dish-original HTML came out with a program based on the web, which has been "contextual" through mapping #Name destinations in the old help web page. For it work, we have a JavaScript that maps the old #Name to the new WebHelp MapIDs destinations and redirects the old web help page to a subdirectory that has the WebHelp output files. But it is not working properly. If we invoke WebHelp via

    HH_DISPLAY_TOC, the new WebHelp opens in the frameset, but does not have the context mapping.

    The programmer said that we need a way to invoke help by using a URL. So, I sent him what he says in the help system of HR for programmers:

    RH_ShowHelp (0, "IQ_Help/util_en.html", HH_HELP_CONTEXT, HelpTag)

    I also have him sent a file PDF HR help topics for programmers on call WebHelp.

    From what I understand reading the JavaScript (and I'm NOT a programmer), he put HelpTag as variable for the ID card that is provided in a .properties file.

    Tried without success using one of the following ways of calling (not like lines sequential code, but as methods of replacement of the same line of code):

    • RoboHelp_ShowHelp (http://[servername]/IQ_Help/util_en.html, 0)
    • RH_ShowHelp (0, "IQ_Help/util_en.html > UUGuide % 20SPi", HH_HELP_CONTEXT, HelpTag)
    • RH_ShowHelp (0, "IQ_Help/util_en.html > UUGuide % 20SPi", HH_DISPLAY_TOC, HelpTag)
    • http:// [Servername] / robohelp/rest/robowindow? wtype = ctx & context = HelpTag <- as a call to the URL

    I'm sorry, I'm looking like a real fool here - I'm really not good at all on Java or JavaScript and I never had to lead a programmer by how the help call to work, and I'm at the end of her patience with me... I don't know where else to turn... I need an idea on YOUR part.

    I thought to provide the text of JavaScript here, but I don't know for sure if he could appear as text, or how to get an attachment that is safe. Please tell me?

    Thanks in advance,

    René

    Tommy Simmons is an old article, and I guess he shot.

    The reason why you are confused, it's that a lot of this is stuff for your developers to read and understand. You may need to associate your hierarchical in any policy if they push it to you.

    However as the stuff of URL do require an API. If you look at just the call WebHelp using URL on my site or the link that Rick has given, I think you will be OK with that. After back if not.

    See www.grainge.org for creating tips and RoboHelp

    @petergrainge

  • Call the library function does not find the DLL in the directory where are my LLBs

    I'm using LabVIEW 8.6.  I have a set of screws in several LLBs.  All LLBs located in a directory.  Most of my screws is wrappers for the functions in a DLL.  I was told to put my DLL in the directory where are the LLBs, and apparently this is how the previous programmer has worked (using an earlier version of LabView).

    In the configuration of the library call, I've specified .dll without path.  (This is how we want our screws are an API that will integrate other programmers, so I don't know where they put things and I can't use absolute paths).

    When I insert the VIs in LabVIEW, LabVIEW can not find the DLL and wonder of spotted.  It's just that here in the directory with the LLBs and when I double click on it, everything works fine.  However my absolute path to the DLL now appears in the library to call configuration, and we don't want that.

    Does anyone know how to make this work?  I guess the location of the screw (or LLBs, in this case) should be the current directory and thus Windows search there for the DLL.  However, it seems that this is not the case (in the least, in the latest version of LabVIEW).

    Thank you.

    Batya

    Well someone using your library should not have to dig into your screws and do it all on his own. Instead your library must wrap that and hide disorders it altogether.

    The cluster of error has been added when the dynamic path option has been added. It is not useful hide this error output, so it's always there. As well as the dynamic path, there was the improved error handling added the CLN. One of them is that the level of verification when calling function errors (exception handling) can be specified. I guess that some of these options may generate an error code instead of bring up a dialog box, as they did before and that the output of error code can be useful even in the case of static calls.

    As to what you want to do, I would have long managed that with a DLL that has essentially the same functions as your other wrapper DLLs and an initiliasation function that returns a pointer to a structure of functional distribution based on the actual DLL you want to call. Quite like what an object-oriented function dispatch table is. Then, when your interface initilising you call initialize function and specify the device interface/type that you want to use and after that all other functions take a pointer extra function parameter expedition as the first parameter, in addition to the parameters of the real function. This dispatch function pointer would be just a pointer to a structure that contains the table of function for this interface pointers and the sake of LabVIEW would simply be an integer of size pointer.

    The wrapper function then checks the pointer structure validity send feature and call the actual function with the remaining parameters. It is a C programming and may require a planning and desigining the different interfaces to facilitate this kind of technique of the expedition, but it will certainly pay to long-term and make your library even can be used in previous versions of LabVIEW, so that VB etc. without delicate dynamic loading in the level high, programming environment.

    Rolf Kalbermatter

  • The API SOAP Email - reply not saved name/address

    Hi, Code

    We're having a problem with the custom setting Reply-To the names and addresses of response when you use the "CreateHtmlEmail" and "UpdateHtmlEmail". I am including the request/response below, please note that I indicate the ReplyToName and ReplyToAddress settings but the Email does not have those.

    Request:

    " < = env:Envelope container ' http://www.w3.org/2001/XMLSchema "" xmlns: xsi = " " http://www.w3.org/2001/XMLSchema-instance "xmlns:tns =" " https://secure.Eloqua.com/API/1.2 "xmlns:env =" " http://schemas.xmlsoap.org/SOAP/envelope/ "xmlns:ins0 =" " http://schemas.Microsoft.com/2003/10/Serialization/Arrays "> "

    < env:Header >

    " < xmlns:wsse wsse: Security = ' http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-wssecurity-secext-1.0.xsd ">

    " < wsse: UsernameToken WSU: ID = 'UsernameToken-1' xmlns:wsu = ' http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-wssecurity-utility-1.0.xsd ">

    < wsse:Username > IHSIncSandbox\Ilya.Hoffman < / wsse:Username >

    " < wsse:Password Type = ' http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-username-token-profile-1.0#PasswordText "> [DELETED] < / wsse:Password > .

    < / wsse: UsernameToken >

    < / wsse: Security >

    < / env:Header >

    < env:Body >

    < tns:UpdateHtmlEmail >

    < tns:email >

    < tns:Id > 10700 < / tns:Id >

    [PMP] < tns:Name > _4558_Testingrn_PreviewEmail_IH < / tns:Name >

    < tns:Subject > T1 < / tns:Subject >

    < tns:AutoGenerateTextContent > true < / tns:AutoGenerateTextContent >

    < tns:EncodingId > 1 < / tns:EncodingId >

    < tns:FooterId > 1 < / tns:FooterId >

    < tns:FromAddress > [email protected] < / tns:FromAddress >

    < tns:FromName > T1 < / tns:FromName >

    < tns:HeaderId > 1 < / tns:HeaderId >

    < tns:HtmlContent > Hello World! < / tns:HtmlContent >

    < tns:SendHtml > true < / tns:SendHtml >

    < tns:NeverExpires > true < / tns:NeverExpires >

    < tns:ReplyToAddress > [email protected] < / tns:ReplyToAddress >

    < tns:ReplyToName > response Test < / tns:ReplyToName >

    < tns:SendToUnsubscribes > false < / tns:SendToUnsubscribes >

    < tns: crawler > true < / tns: crawler >

    < / tns:email >

    < / tns:UpdateHtmlEmail >

    < / env:Body >

    < / env:Envelope >

    Answer:

    " < s: Envelope = xmlns:s ' http://schemas.xmlsoap.org/SOAP/envelope/ "xmlns:u =" " http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-wssecurity-utility-1.0.xsd ">

    < s:Header >

    " < ActivityId CorrelationId ="7052c8fd-1ca2-4aca-9608-4b033717cd2d"xmlns =" http://schemas.Microsoft.com/2004/09/ServiceModel/Diagnostics "> 9eec4480-4856-48c1-9835-0633e518948a < / ActivityId > .

    " < o: Security s:mustUnderstand = '1' xmlns:o = ' http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-wssecurity-secext-1.0.xsd ">

    < u: Timestamp u: Id = "_0" >

    < u: created > 2013-08-30T 19: 37:28.427Z < / u: created >

    < u: expires > 2013-08-30T 19: 42:28.427Z < / u: expires >

    < / u: Timestamp >

    < / o: Security >

    < / s:Header >

    < Body >

    " < UpdateHtmlEmailResponse xmlns =" https://secure.Eloqua.com/API/1.2 ">

    < UpdateHtmlEmailResult > true < / UpdateHtmlEmailResult >

    < / UpdateHtmlEmailResponse >

    < / Body >

    < / s: Envelope >

    Then retrieve the details for the same E-mail:

    Request:

    " < = xmlns:soapenv soapenv:Envelope ' http://schemas.xmlsoap.org/SOAP/envelope/ "xmlns:ns =" " https://secure.Eloqua.com/API/1.2 ">

    < soapenv:Header >

    " < xmlns:wsse wsse: Security = ' http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-wssecurity-secext-1.0.xsd ">

    " < wsse: UsernameToken WSU: ID = 'UsernameToken-1' xmlns:wsu = ' http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-wssecurity-utility-1.0.xsd ">

    < wsse:Username > IHSIncSandbox\Ilya.Hoffman < / wsse:Username >

    " < wsse:Password Type = ' http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-username-token-profile-1.0#PasswordText "> [DELETED] < / wsse:Password > .

    < / wsse: UsernameToken >

    < / wsse: Security >

    < / soapenv:Header >

    < soapenv:Body >

    < ns:GetEmailDetails >

    < ns:emailId > 10700 < / ns:emailId >

    < / ns:GetEmailDetails >

    < / soapenv:Body >

    < / soapenv:Envelope >

    Answer:

    " < s: Envelope = xmlns:s ' http://schemas.xmlsoap.org/SOAP/envelope/ "xmlns:u =" " http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-wssecurity-utility-1.0.xsd ">

    < s:Header >

    " < ActivityId CorrelationId ="153f216a-97c0-4f0b-98bc-41f19734ca9f"xmlns =" http://schemas.Microsoft.com/2004/09/ServiceModel/Diagnostics "> 19a9ec9b-882c-4ef2-b706-d01fd9e4a37a < / ActivityId > .

    " < o: Security s:mustUnderstand = '1' xmlns:o = ' http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-wssecurity-secext-1.0.xsd ">

    < u: Timestamp u: Id = "_0" >

    < u: created > 2013-08-30T 19: 39:50.509Z < / u: created >

    < u: expires > 2013-08-30T 19: 44:50.509Z < / u: expires >

    < / u: Timestamp >

    < / o: Security >

    < / s:Header >

    < Body >

    " < GetEmailDetailsResponse xmlns =" https://secure.Eloqua.com/API/1.2 ">

    " < = Xmlns:i GetEmailDetailsResult ' http://www.w3.org/2001/XMLSchema-instance ">

    < id > < /ID > 10700

    [PMP] < name > _4558_Testingrn_PreviewEmail_IH < / name >

    T1 < object > < / topic >

    < AutoGenerateTextContent > true < / AutoGenerateTextContent >

    < BouncebackAddress > [email protected] < / BouncebackAddress >

    < EncodingId > 1 < / EncodingId >

    < FooterId > 1 < / FooterId >

    < FromAddress > [email protected] < / FromAddress >

    T1 < FromName > < / FromName >

    < > 123 GroupId < / GroupId >

    < HeaderId > 1 < / HeaderId >

    < HtmlContent > Hello World! < / HtmlContent >

    < NeverExpires > false < / NeverExpires >

    < ReplyToAddress > [email protected] < / ReplyToAddress >

    < ReplyToName > IHS Inc Sandbox < / ReplyToName >

    < SendHtml > true < / SendHtml >

    < SendToUnsubscribes > false < / SendToUnsubscribes >

    < TextContent > Hello World! < / TextContent >

    < track > true < / tracks >

    < / GetEmailDetailsResult >

    < / GetEmailDetailsResponse >

    < / Body >

    < / s: Envelope >

    Tarek,

    It turns out that it's the location of the "SentHtml" parameter in the envelope regarding settings "answer". The following query works:

    10700

    _4558_Testingrn_PreviewEmail_IH [PGP]

    T1

    true

    1

    1

    [email protected]

    T1

    1

    Hello world!

    true

    [email protected]

    Test answer

    true

    fake

    true

  • User API HR hook does not

    Hello, I created a hook api user for PAY_ELEMENT_ENTRIES but it doesn't seem to do anything.
    Am I supposed to bounce the database server and apache to make it work?

    Here's what I did:


    1 find the data of crochet

    Select hah.api_hook_id, ham.module_name, ham.module_package, hah.api_hook_type, flv.meaning api_hook_type_meaning,
    Hah.hook_package, hah.hook_procedure, hah.legislation_code, hah.legislation_package,
    Hah.legislation_function
    of ham, hr_api_hooks hah, fnd_lookup_values flv hr_api_modules
    where hah.api_module_id = ham.api_module_id
    and flv.lookup_type = 'API_HOOK_TYPE. '
    and ham.api_module_type ("PA")
    -for element entries, so I will use as
    and ham.module_package like ' % ITEMS % INPUT % '.
    -must be selected for the batch entry of element and direct entry which are the two ways in which the item will be changed
    and ham.module_name in
    ('CREATE_ELEMENT_ENTRY', 'UPDATE_ELEMENT_ENTRY')
    and flv.meaning = 'after the process.
    and flv.lookup_code = hah.api_hook_type
    order of ham.module_package, ham.module_name;

    2. create the package that will run

    I want to update the salary whenever a change is made to some entries of the element by using the API - HR_MAINTAIN_PROPOSAL_API. CRE_OR_UPD_SALARY_PROPOSAL.

    First of all, I have to get the 'hook_package' and 'hook_procedure' columns of the query above to the 'module_name' (also of the query), I create a hook for.
    So I find myself with the following values:

    module_name: UPDATE_ELEMENT_ENTRY
    hook_package: PAY_ELEMENT_ENTRY_BK2
    hook_procedure: UPDATE_ELEMENT_ENTRY_A

    We must then open this package and look at the UPDATE_ELEMENT_ENTRY_A procedure.
    Our custom hook procedure parameters must correspond exactly to that of UPDATE_ELEMENT_ENTRY_A


    CREATE OR REPLACE
    XXPAY_KSA_HOOKS_PKG PACKAGE BODY
    AS

    / * in the api / element entry screen, what change is coming to the gross salary if one inserts a standard element * /.
    PROCEDURE AFTER_SALARY_ELEMENT_INS
    (p_effective_date dated
    p_business_group_id number
    p_original_entry_id number
    p_assignment_id number
    p_element_link_id number
    p_entry_type in varchar2
    p_creator_type in varchar2
    p_cost_allocation_keyflex_id number
    p_updating_action_id number
    p_updating_action_type in varchar2
    p_comment_id number
    p_reason in varchar2
    p_target_entry_id number
    p_subpriority number
    p_date_earned as
    p_personal_payment_method_id number
    p_attribute_category in varchar2
    p_attribute1 in varchar2
    p_attribute2 in varchar2
    p_attribute3 in varchar2
    p_attribute4 in varchar2
    p_attribute5 in varchar2
    p_attribute6 in varchar2
    p_attribute7 in varchar2
    p_attribute8 in varchar2
    p_attribute9 in varchar2
    p_attribute10 in varchar2
    p_attribute11 in varchar2
    p_attribute12 in varchar2
    p_attribute13 in varchar2
    p_attribute14 in varchar2
    p_attribute15 in varchar2
    p_attribute16 in varchar2
    p_attribute17 in varchar2
    p_attribute18 in varchar2
    p_attribute19 in varchar2
    p_attribute20 in varchar2
    p_input_value_id1 number
    p_input_value_id2 number
    p_input_value_id3 number
    p_input_value_id4 number
    p_input_value_id5 number
    p_input_value_id6 number
    p_input_value_id7 number
    p_input_value_id8 number
    p_input_value_id9 number
    p_input_value_id10 number
    p_input_value_id11 number
    p_input_value_id12 number
    p_input_value_id13 number
    p_input_value_id14 number
    p_input_value_id15 number
    p_entry_value1 in varchar2
    p_entry_value2 in varchar2
    p_entry_value3 in varchar2
    p_entry_value4 in varchar2
    p_entry_value5 in varchar2
    p_entry_value6 in varchar2
    p_entry_value7 in varchar2
    p_entry_value8 in varchar2
    p_entry_value9 in varchar2
    p_entry_value10 in varchar2
    p_entry_value11 in varchar2
    p_entry_value12 in varchar2
    p_entry_value13 in varchar2
    p_entry_value14 in varchar2
    p_entry_value15 in varchar2
    p_entry_information_category in varchar2
    p_entry_information1 in varchar2
    p_entry_information2 in varchar2
    p_entry_information3 in varchar2
    p_entry_information4 in varchar2
    p_entry_information5 in varchar2
    p_entry_information6 in varchar2
    p_entry_information7 in varchar2
    p_entry_information8 in varchar2
    p_entry_information9 in varchar2
    p_entry_information10 in varchar2
    p_entry_information11 in varchar2
    p_entry_information12 in varchar2
    p_entry_information13 in varchar2
    p_entry_information14 in varchar2
    p_entry_information15 in varchar2
    p_entry_information16 in varchar2
    p_entry_information17 in varchar2
    p_entry_information18 in varchar2
    p_entry_information19 in varchar2
    p_entry_information20 in varchar2
    p_entry_information21 in varchar2
    p_entry_information22 in varchar2
    p_entry_information23 in varchar2
    p_entry_information24 in varchar2
    p_entry_information25 in varchar2
    p_entry_information26 in varchar2
    p_entry_information27 in varchar2
    p_entry_information28 in varchar2
    p_entry_information29 in varchar2
    p_entry_information30 in varchar2
    p_override_user_ent_chk in varchar2
    p_effective_start_date as
    p_effective_end_date as
    p_element_entry_id number
    p_object_version_number number
    p_create_warning to boolean
    )
    AS
    cursor c_standard_elements
    is
    Select petf.element_type_id, nvl(peevf.screen_entry_value,0) screen_entry_value
    of pay_element_entries_f peef, pay_element_entry_values_f peevf,.
    petf, pay_input_values_f pivf pay_element_types_f
    where peef.assignment_id = p_assignment_id
    and peef.element_type_id = peef.element_type_id
    and peevf.input_value_id = pivf.input_value_id
    and pivf.name = 'amount of the payment.
    and peevf.element_entry_id = peef.element_entry_id
    and petf.element_type_id = pivf.element_type_id
    and peef.entry_type = 'E '.
    and p_effective_start_date between peevf.effective_start_date and peevf.effective_end_date
    and p_effective_start_date between pivf.effective_start_date and pivf.effective_end_date
    and p_effective_start_date between petf.effective_start_date and petf.effective_end_date
    and p_effective_start_date between peef.effective_start_date and peef.effective_end_date
    and petf.element_type_id in)
    Select pivf.element_type_id from
    pbf, pbt pay_balance_types, pay_input_values_f pivf pay_balance_feeds_f
    where pbt.balance_name = 'KSA_MONTHLY_GROSS_BALANCE. '
    and pbf.balance_type_id = pbt.balance_type_id
    and pivf.input_value_id = pbf.input_value_id
    -limit in Saudi Arabia
    and pbt.currency_code = 'SAR '.
    and sysdate between pivf.effective_start_date and pivf.effective_end_date
    and sysdate between pbf.effective_start_date and pbf.effective_end_date);
    -Another slider to get the value of all the standard elements
    -gross monthly
    v_monthly_gross number: = 0;
    -out parameters
    number of v_pay_proposal_id;
    number of v_object_version_number;
    v_inv_next_sal_date_warning boolean;
    v_proposed_salary_warning boolean;
    v_approved_warning boolean;
    v_payroll_warning boolean;
    BEGIN
    -check if the element is in the list of standard items
    for rec in c_standard_elements
    loop
    -calculate the monthly gross
    v_monthly_gross: = v_monthly_gross + rec.screen_entry_value;
    end loop;
    -Gross monthly if not zero and then insert or update
    If v_monthly_gross > 0 then
    -set the monthly salary gross
    HR_MAINTAIN_PROPOSAL_API. () CRE_OR_UPD_SALARY_PROPOSAL
    p_change_date = > p_effective_start_date,
    p_business_group_id = > p_business_group_id,
    p_assignment_id = > p_assignment_id,
    p_proposed_salary_n = > v_monthly_gross,
    p_approved = > 'Y ',.
    p_multiple_components = > 'n',.
    -params
    p_pay_proposal_id = > v_pay_proposal_id,
    p_object_version_number = > v_object_version_number,
    p_inv_next_sal_date_warning = > v_inv_next_sal_date_warning,
    p_proposed_salary_warning = > v_proposed_salary_warning,
    p_approved_warning = > v_approved_warning,
    p_payroll_warning = > v_payroll_warning
    );
    end if;
    EXCEPTION
    WHILE OTHERS THEN
    null;
    END;

    / * in the api / element entry screen, what change is coming to the gross salary if we update a standard element * /.
    PROCEDURE AFTER_SALARY_ELEMENT_UPD
    (p_datetrack_update_mode in varchar2
    p_effective_date as
    p_business_group_id number
    p_element_entry_id number
    p_object_version_number number
    p_cost_allocation_keyflex_id number
    p_updating_action_id number
    p_updating_action_type in varchar2
    p_original_entry_id number
    p_creator_type in varchar2
    p_comment_id number
    p_creator_id number
    p_reason in varchar2
    p_subpriority number
    p_date_earned as
    p_personal_payment_method_id number
    p_attribute_category in varchar2
    p_attribute1 in varchar2
    p_attribute2 in varchar2
    p_attribute3 in varchar2
    p_attribute4 in varchar2
    p_attribute5 in varchar2
    p_attribute6 in varchar2
    p_attribute7 in varchar2
    p_attribute8 in varchar2
    p_attribute9 in varchar2
    p_attribute10 in varchar2
    p_attribute11 in varchar2
    p_attribute12 in varchar2
    p_attribute13 in varchar2
    p_attribute14 in varchar2
    p_attribute15 in varchar2
    p_attribute16 in varchar2
    p_attribute17 in varchar2
    p_attribute18 in varchar2
    p_attribute19 in varchar2
    p_attribute20 in varchar2
    p_input_value_id1 number
    p_input_value_id2 number
    p_input_value_id3 number
    p_input_value_id4 number
    p_input_value_id5 number
    p_input_value_id6 number
    p_input_value_id7 number
    p_input_value_id8 number
    p_input_value_id9 number
    p_input_value_id10 number
    p_input_value_id11 number
    p_input_value_id12 number
    p_input_value_id13 number
    p_input_value_id14 number
    p_input_value_id15 number
    p_entry_value1 in varchar2
    p_entry_value2 in varchar2
    p_entry_value3 in varchar2
    p_entry_value4 in varchar2
    p_entry_value5 in varchar2
    p_entry_value6 in varchar2
    p_entry_value7 in varchar2
    p_entry_value8 in varchar2
    p_entry_value9 in varchar2
    p_entry_value10 in varchar2
    p_entry_value11 in varchar2
    p_entry_value12 in varchar2
    p_entry_value13 in varchar2
    p_entry_value14 in varchar2
    p_entry_value15 in varchar2
    p_entry_information_category in varchar2
    p_entry_information1 in varchar2
    p_entry_information2 in varchar2
    p_entry_information3 in varchar2
    p_entry_information4 in varchar2
    p_entry_information5 in varchar2
    p_entry_information6 in varchar2
    p_entry_information7 in varchar2
    p_entry_information8 in varchar2
    p_entry_information9 in varchar2
    p_entry_information10 in varchar2
    p_entry_information11 in varchar2
    p_entry_information12 in varchar2
    p_entry_information13 in varchar2
    p_entry_information14 in varchar2
    p_entry_information15 in varchar2
    p_entry_information16 in varchar2
    p_entry_information17 in varchar2
    p_entry_information18 in varchar2
    p_entry_information19 in varchar2
    p_entry_information20 in varchar2
    p_entry_information21 in varchar2
    p_entry_information22 in varchar2
    p_entry_information23 in varchar2
    p_entry_information24 in varchar2
    p_entry_information25 in varchar2
    p_entry_information26 in varchar2
    p_entry_information27 in varchar2
    p_entry_information28 in varchar2
    p_entry_information29 in varchar2
    p_entry_information30 in varchar2
    p_override_user_ent_chk in varchar2
    p_effective_start_date as
    p_effective_end_date as
    p_update_warning to boolean)
    AS
    cursor c_standard_elements
    is
    Select petf.element_type_id, nvl(peevf.screen_entry_value,0) screen_entry_value,
    PETF.business_group_id, peef.assignment_id
    of pay_element_entries_f peef, pay_element_entry_values_f peevf,.
    petf, pay_input_values_f pivf pay_element_types_f
    where peef.assignment_id = (select assignment_id from pay_element_entries_f peefb
    where peefb.effective_start_date = p_effective_start_date
    and peefb.element_entry_id = p_element_entry_id)
    and peef.element_type_id = peef.element_type_id
    and peevf.input_value_id = pivf.input_value_id
    and pivf.name = 'amount of the payment.
    and peevf.element_entry_id = peef.element_entry_id
    and petf.element_type_id = pivf.element_type_id
    and peef.entry_type = 'E '.
    and p_effective_start_date between peevf.effective_start_date and peevf.effective_end_date
    and p_effective_start_date between pivf.effective_start_date and pivf.effective_end_date
    and p_effective_start_date between petf.effective_start_date and petf.effective_end_date
    and p_effective_start_date between peef.effective_start_date and peef.effective_end_date
    and petf.element_type_id in)
    Select pivf.element_type_id from
    pbf, pbt pay_balance_types, pay_input_values_f pivf pay_balance_feeds_f
    where pbt.balance_name = 'KSA_MONTHLY_GROSS_BALANCE. '
    and pbf.balance_type_id = pbt.balance_type_id
    and pivf.input_value_id = pbf.input_value_id
    -limit in Saudi Arabia
    and pbt.currency_code = 'SAR '.
    and sysdate between pivf.effective_start_date and pivf.effective_end_date
    and sysdate between pbf.effective_start_date and pbf.effective_end_date);
    -Another slider to get the value of all the standard elements
    -gross monthly
    v_monthly_gross number: = 0;
    -out parameters
    number of v_pay_proposal_id;
    number of v_object_version_number;
    v_inv_next_sal_date_warning boolean;
    v_proposed_salary_warning boolean;
    v_approved_warning boolean;
    v_payroll_warning boolean;
    number of v_business_group_id;
    number of v_assignment_id;
    BEGIN
    -check if the element is in the list of standard items
    for rec in c_standard_elements
    loop
    -calculate the monthly gross
    v_monthly_gross: = v_monthly_gross + rec.screen_entry_value;
    v_business_group_id: = rec.business_group_id;
    v_assignment_id: = rec.assignment_id;
    end loop;
    -Gross monthly if not zero and then insert or update
    If (v_monthly_gross > 0) then
    -set the monthly salary gross
    HR_MAINTAIN_PROPOSAL_API. () CRE_OR_UPD_SALARY_PROPOSAL
    p_change_date = > p_effective_start_date,
    p_business_group_id = > v_business_group_id,
    p_assignment_id = > v_assignment_id,
    p_proposed_salary_n = > v_monthly_gross,
    p_approved = > 'Y ',.
    p_multiple_components = > 'n',.
    -params
    p_pay_proposal_id = > v_pay_proposal_id,
    p_object_version_number = > v_object_version_number,
    p_inv_next_sal_date_warning = > v_inv_next_sal_date_warning,
    p_proposed_salary_warning = > v_proposed_salary_warning,
    p_approved_warning = > v_approved_warning,
    p_payroll_warning = > v_payroll_warning
    );
    end if;
    EXCEPTION
    WHILE OTHERS THEN
    null;
    END;

    / * in the api / element entry screen, what change is coming to the gross salary if we remove a standard element * /.
    PROCEDURE AFTER_SALARY_ELEMENT_DEL
    (p_datetrack_delete_mode in varchar2
    p_effective_date as
    p_element_entry_id number
    p_object_version_number number
    p_effective_start_date as
    p_effective_end_date as
    p_delete_warning to boolean
    )
    AS
    cursor c_standard_elements
    is
    Select petf.element_type_id, nvl(peevf.screen_entry_value,0) screen_entry_value,
    PETF.business_group_id, peef.assignment_id
    of pay_element_entries_f peef, pay_element_entry_values_f peevf,.
    petf, pay_input_values_f pivf pay_element_types_f
    where
    PEEF.assignment_id =
    (by selecting assignment_id in pay_element_entries_f peefb
    where peefb.effective_start_date = p_effective_start_date
    and peefb.element_entry_id = p_element_entry_id)
    and peef.element_type_id = peef.element_type_id
    and peevf.input_value_id = pivf.input_value_id
    and pivf.name = 'amount of the payment.
    and peevf.element_entry_id = peef.element_entry_id
    and petf.element_type_id = pivf.element_type_id
    and peef.entry_type = 'E '.
    and p_effective_start_date between peevf.effective_start_date and peevf.effective_end_date
    and p_effective_start_date between pivf.effective_start_date and pivf.effective_end_date
    and p_effective_start_date between petf.effective_start_date and petf.effective_end_date
    and p_effective_start_date between peef.effective_start_date and peef.effective_end_date
    and petf.element_type_id in)
    Select pivf.element_type_id from
    pbf, pbt pay_balance_types, pay_input_values_f pivf pay_balance_feeds_f
    where pbt.balance_name = 'KSA_MONTHLY_GROSS_BALANCE. '
    and pbf.balance_type_id = pbt.balance_type_id
    and pivf.input_value_id = pbf.input_value_id
    -limit in Saudi Arabia
    and pbt.currency_code = 'SAR '.
    and sysdate between pivf.effective_start_date and pivf.effective_end_date
    and sysdate between pbf.effective_start_date and pbf.effective_end_date);
    -Another slider to get the value of all the standard elements
    -gross monthly
    v_monthly_gross number: = 0;
    -out parameters
    number of v_pay_proposal_id;
    number of v_object_version_number;
    v_inv_next_sal_date_warning boolean;
    v_proposed_salary_warning boolean;
    v_approved_warning boolean;
    v_payroll_warning boolean;
    number of v_business_group_id;
    number of v_assignment_id;
    BEGIN
    -check if the element is in the list of standard items
    for rec in c_standard_elements
    loop
    -calculate the monthly gross
    v_monthly_gross: = v_monthly_gross + rec.screen_entry_value;
    v_business_group_id: = rec.business_group_id;
    v_assignment_id: = rec.assignment_id;
    end loop;
    -Gross monthly if not zero and then insert or update
    If v_monthly_gross > 0 then
    -set the monthly salary gross
    HR_MAINTAIN_PROPOSAL_API. () CRE_OR_UPD_SALARY_PROPOSAL
    p_change_date = > p_effective_start_date,
    p_business_group_id = > v_business_group_id,
    p_assignment_id = > v_assignment_id,
    p_proposed_salary_n = > v_monthly_gross,
    p_approved = > 'Y ',.
    p_multiple_components = > 'n',.
    -params
    p_pay_proposal_id = > v_pay_proposal_id,
    p_object_version_number = > v_object_version_number,
    p_inv_next_sal_date_warning = > v_inv_next_sal_date_warning,
    p_proposed_salary_warning = > v_proposed_salary_warning,
    p_approved_warning = > v_approved_warning,
    p_payroll_warning = > v_payroll_warning
    );
    end if;
    EXCEPTION
    WHILE OTHERS THEN
    null;
    END;


    3 3. Sign up for our new hook:

    declare
    number of v_api_hook_call_id;
    number of v_object_version_number;
    number of v_sequence;
    number of v_api_hook_id: = 7150;
    v_api_hook_call_type varchar2 (5000): = "PP".
    Start
    -get the latest sequence value
    Select hr_api_hooks_s.nextval from v_sequence
    Double;
    -get the type of call api hook
    Select lookup_code
    in v_api_hook_call_type
    of fnd_lookup_values
    where lookup_type like 'API_HOOK_CALL_TYPE '.
    and the sense = "packed the procedure."
    -Register with api hook
    () hr_api_hook_call_api.create_api_hook_call
    p_effective_date = > to_date('01-JAN-1951'),-we have to_date('01-JAN-1980') or whatever we choose
    -of above query
    p_api_hook_id = > v_api_hook_id,
    p_api_hook_call_type = > v_api_hook_call_type,
    p_sequence = > v_sequence,
    p_enabled_flag = > 'Y ',.
    p_call_package = > 'XXPAY_KSA_HOOKS_PKG',-package we defined xx_hr_elem_entry_hook_pkg
    p_call_procedure = > 'AFTER_SALARY_ELEMENT_UPD',-procedure for calling in the package
    -params
    p_api_hook_call_id = > v_api_hook_call_id,
    p_object_version_number = > v_object_version_number
    );
    dbms_output.put_line ('Completed');
    commit;
    exception
    while others then
    dbms_output.put_line (SQLERRM);
    end;


    We find our new crochet by running:

    Select *.
    of hr_api_hook_calls
    where call_package = 'XXPAY_KSA_HOOKS_PKG. '
    and call_procedure = 'AFTER_SALARY_ELEMENT_UPD ';


    4. copy the hrahkone.sql file, paste it into sql developer and run

    the status is V, which indicates that it is successful

    But for some reason, it does not.
    When I run the package procedure, it does exactly what I expect. What could be wrong?

    Hi innocent,

    the form does not use the API.
    You must go through the customization of the form to achieve the result.

    see you soon
    Giuseppe

  • IPhone 6 IOS 9.3.1 does not ring when a call comes, neither text does not sound a notification.

    IPhone 6 IOS 9.3.1 does not ring when a call comes, neither text does not sound a notification.

    Have you checked the obvious things? E.g.Ring/Silent switch on the left side is not on? Control the volume of ringtone under settings/sounds?

    If they are not serious then have you tried power the phone off and on again? Other sounds work fine, or if all sounds are dumb? for example can play you music through the speaker?

Maybe you are looking for