Problem with cfhttp in a loop

Hi,
I am reading an xml file that contains emails with attachments (one email per item/node, but may contain multiple attachments).  I am trying to save the attachments to our server.  So I'm looping over the multiple attachments of a single email and using cfhttp to GET the attachments from another server and save them with the same filename on our server.
The problem is that it works for the first attachment - it's saved to the server, status code is 200 OK - awesome!  But for any attachments after that, it does not save them and throws a Conection Failure error.  No matter what attachments they are.
In trouble shooting I tried several things.  First, inside of my loop of attachments, I can hardcode the cfhttp calls with the url and filename of the attachments - one right after the other - and all is perfect everytime!!  But it obviously needs to be dynamic.  I also tried to save a list of the attachment urls from the loop, and then call a separate cfhttp tag for each attachment in the list (so again, was in a loop) and it works for the first attachment in the list and not for the others (same errors as above).
Here's a simplified version of the code.  I can't put in the real xml url, and when I set the "attachmentFilename" I left out that code because it works and is too much code.  Also, the XML works fine.  Please let me know if you have any suggestions, and of course, if you need more info from me!!
Thanks so much,
Kirsten
<cfoutput>
<cfhttp url="https://www.myxml.com/example.xml" method="get" resolveurl="no" />
<cfset myXML = trim(cfhttp.FileContent)>
<cfset myXML = xmlParse(myXML)>
<cfset theRoot = myXML.XmlRoot>
<cfset numChildren = arrayLen(theRoot.XMLChildren[1].XmlChildren)>
<cfloop index="i" from="6" to="#numChildren#">
    <cfset attachments = theRoot.XMLChildren[1].XMLChildren[i]["attachments"].XmlText>
    <cfif ListLen(attachments, "|^|") gt 2>
        <cfset loop_unid = theRoot.XMLChildren[1].XMLChildren[i]["unid"].XmlText>
        <cfset counter = 0>
        <cfset attachmentArray = ListToArray(attachments, "|^|")>
        <cfloop from="1" to="#ArrayLen(attachmentArray)#" index="k">
            <cfset counter = counter + 1>
            <cfset attachmentURL = attachmentArray[k]>
            <cfset attachmentFilename = Replace(attachmentArray[k],"strip the url from the filename in the url","")>
            <cfhttp url="#attachmentURL#" method="get" resolveurl="no" timeout="120" path="D:\my_servers_path\attachmentFolder\" file="#attachmentFilename#">
            attachment counter: #counter#<BR />
            cfhttp.statusCode: #cfhttp.statusCode#<BR />
            cfhttp.errorDetail: #cfhttp.errorDetail#<BR />
        </cfloop>
    </cfif>
</cfloop>
</cfoutput>
Output Results:
attachment counter: 1
cfhttp.statusCode: 200 OK
cfhttp.errorDetail:
attachment counter: 2
cfhttp.statusCode: Connection Failure.  Status code unavailable.
cfhttp.errorDetail: I/O Exception: peer not authenticated
attachment counter: 3
cfhttp.statusCode: Connection Failure.  Status code unavailable.
cfhttp.errorDetail: I/O Exception: peer not authenticated

We've seen the peer not authenticated error quite a bit on our CFHTTP calls - are you trying to access the URLs via HTTPS?  It seems the SSL certificate keystore that CF ships with does not contain all the vendor SSL certificates out there - when CF can't authenticate a cert, it throws that "Connection Failure / Peer not authenticated Error".  In order to fix the issue, you have to import the SSL certificate of the site you are trying to access into the CF cert store on your server(s).  If you are using multiple servers, you will have to import the cert on each server.
I'm sure a google search will turn up a step by step guide on how to do this, but the basic steps are:
Go to a page on the SSL server.
Double-click the lock icon.
Click the Details tab.
Click Copy To File.
Select the base64 option and save the file.
Copy the CER file into ColdfusionDir\runtime\jre\lib\security
Run the following command from the same directory (keytool.exe is located in ColdfusionDir\runtime\jre\bin) ..\..\bin\keytool.exe -import -keystore cacerts -alias UniqueName -file filename.cer
Restart Coldfusion
Hope that helps!
- Michael

Similar Messages

  • Problem with ResultSet in a loop

    hi,
    i have a probleme with ResultSet when, my code is bellow
    ResultSet rs = stmt.executeQuery(sql);
    sql="SELECT NAME FROM prestationtemp";
    rs = stmt.executeQuery(sql);
    String sqlDel="";
    while (rs.next())
    sqlDel="Delete from prestation where NAME="+rs.getString("NAME");
    stmt.executeQuery(sqlDel);
    the problem is that the loop iterate just once like if there is just one record, and if I remove stmt.executeQuery(sqlDel); from the loop it iterate normaly.
    thanks in advance.

    you will need to use 2 Statments e.g.
    Statement stmt1 = connection.createStatement();
    Statement stmt2 = connection.createStatement();
    ResultSet rs = stmt.executeQuery(sql);
    sql="SELECT NAME FROM prestationtemp";
    rs = stmt1.executeQuery(sql);
    String sqlDel="";
    while (rs.next())
    sqlDel="Delete from prestation where NAME="+rs.getString("NAME");
    stmt2.executeQuery(sqlDel);
    } When you reuse a Statement, any resultsets previously created are automatically closed.
    Looking at your code, it seems that you only need 1 SQL call:
    Delete from prestation where NAME in (SELECT NAME FROM prestationtemp)
    Much more efficient!

  • Problem with two parallel While loops

    I have a serious problem with controlling two parallel While Loop. Here is the deal:
    I have written a VI to send a series of commands called Cycle through Serial Port to a custom hardware. One of these commands is setting motor pressure by sending it's command and changing it's voltage. After setting desired pressure I have to read and control motor pressure, again through serial port in a parallel loop. There is a Pressure Sensor in system and I can obtain current's motor pressure by sending a command and receiving pressure value. In the first While loop I send some commands to hardware including Pressure Setting Command trough a state machine. In the second While Loop I read pressure value and then decide to increase motor voltage or decrease  it. Now the problem is in communicating these two loops. In cycle after "Init" state when state reaches "Pressure 2 Bar" motor voltage will increase. Meanwhile I have to control this voltage in parallel While Loop. As you can see I used Local Variable to communicate between these two loops. The problem is that loops are not synchronized. Specially when I switch to "Pressure 3.8 Bar" state during cycle running control loop (second while) is still working based on "Pressure 2 Bar" state not 3.8 bar. Because of this motor pressure goes to 3.8 bar for a sec (becuase of  "Pressure 3.8 Bar" state) and comes back to 2 bar (because the second while still has not gotten that new state,most probably cause of all the delays in the loop)  and after couple seconds it goes back to 3.8 bar.
    I really don’t know what to do. Is there a way to fix this? Or I should consider a better way to do this?
    I went through Occurrence Palette but couldnt figure out how to embed that in the VI. 
    Sorry for my poor English. I attached VI and it's subVIs as a LLB file. I can explain more details if somebody wants. 
    Attachments:
    QuickStartCycle.llb ‏197 KB

    I make it a point to NEVER have a WAIT function inside a state machine.
    It sort of defeats the purpose, which I define as "Examine current state; decide whether you've met the conditions to advance to another state, then get out".
    For example, I have a single state machine VI controlling four identical instruments, via TCP connections.
    For some functions, that means issuing a command, waiting 60 seconds, then reading results.
    If I waited INSIDE the state machine, then it's tied up waiting on one device and cannot handle any others.
    Not a good plan.
    To handle this, I have a loop which calls the state machine.  After issuing the command, the state goes to "Waiting on Response", and there is a target time of 60 seconds from now.
    It's called over and over in that state, and each time merely compares NOW to the target time.  If NOW is past the target, then we read the results.
    the state machine can tell the caller when to call back; that's how I distinguish between an urgent need and nothing-to-do.
    By having the CALLER do the waiting, instead of the state machine itself, the state machine is free to handle another device, or do something else on the same device.
    You should be calling the state machine over and over and over anyway.  So, have the state machine "control the pressure" on every call, and THEN examine whatever state it's in.
    Steve Bird
    Culverson Software - Elegant software that is a pleasure to use.
    Culverson.com
    Blog for (mostly LabVIEW) programmers: Tips And Tricks

  • Problem with DAQ in while loop and Graphs

    Hello,
    I'm new here so I apologize if I posted this on the wrong board  
    This is my "situation":
    I need to make a simple PID controller which takes information (process variable) from an outside source (a NI's DAC connected through the USB port ) which is accomplished using NI-DAQ as an input, and the PID's output goes to the second NI-DAQ which is also connected using DAC to an actuator which in my case regulates the air pressure. (VI attached)
    My problem is the following.
    Both of the NI-DAQ I placed using DAQ Assist, require to be in a while loop.
    -If I place them in separate loops, I have the problem of passing information between the Input NI-DAQ and the PID, and also between the PID and the Output NI-DAQ.
    -If I place them both in one big loop, an error occurs saying that the selected buffer size is too small (Error -200609).
    The timing settings for the DAQ's N samples, 100 samples to read at the rate of 1k (I also tried with Continuous samples and many different combinations of Samples to Read an Rate but without success).
    Should I wire them with the same dt(s)?
    The other thing I need to do (I'm also writing it here in order not to open new topics) is show the following 3 signals on a Graph (process variable (dynamic data type)(range 4mA - 20mA), PID output (double)(range 4mA - 20mA), and the Set Point (double)(range 0 to inf))
    Firstly, is it possible to show the first two on a scale from 0 to 100 without changing the PID's output which needs to be 4-20?
    Secondly, which graph should I use if I have different data types? (I tried the Waveform Chart, and succeeded in showing the first two; the third just messes everything up)
    I would also have to make a legend explaining which signal is which (I see that this is possible with the Mixed Signal Graph).
    I know this is probably too much to ask, but I'd be grateful for any help
    Thank you in advance
    Attachments:
    PID while.vi ‏100 KB

    My problem is the following. Both of the NI-DAQ I placed using DAQ Assist, require to be in a while loop.
    -If
    I place them in separate loops, I have the problem of passing
    information between the Input NI-DAQ and the PID, and also between the
    PID and the Output NI-DAQ.
    This is the best option---Use QUEUE or Functional global or something else to tranfer the data to and fro
    How  do I make that QUEUE or Functional global?
    -If I place them both in one big loop, an error occurs saying that the selected buffer size is too small (Error -200609).
    Have
    you tried increasing the buffer? Is the acquisition happening
    parallelly (means to say the first DAQ not wired (error terminal) to
    second DAQ)
    Well the buffer is, at least how I understood it, the option Number of Samples when in Continuous Samples mode. Concerning the parallel acquisition, do you mean I should wire the error ports of both of the DAQs?

  • Problem with  AT command in LOOP

    Hi Experts,
    here i ve a problem like, in my table there are 3 PSPHI(projects) values,
    if i loop n calculate the sum it is getting total amt for 3 PSPHI values,
    but i want every end of PSPHI i need sum.
    the below code is working fine if there is no AT coomand, if i put AT END OF PSPHI it is giving 00.00 values.
      LOOP AT it_final into it_output.
       AT END OF PSPHI.
        if it_final-wrttp = '04'
           AND it_final-vorga = 'COIN' 
           AND it_final-beltp  = '02'
           AND it_final-versn = '000'.
       t_pla_rev = t_pla_rev + it_output-wlp01.
        MOVE it_output-wlp01 TO pla_rev.
        sum = sum + pla_rev.
          if sy-subrc EQ 0.
            else.
            write:/10 ' u r not ok'.
        endif.
    e  ndif.
    append it_output.
    *ENDAT.
    ENDLOOP.
    write:/10 'total amt is', sum.
    could anybady check where i gone wrong pls...
    Thanks in advance,
    sudharsan.

    Hi,
    What is your table structure.
    The command  AT ........ENDAT  work in sequential order.
    Let me explain with example.
    if your table itab has two column  column1 and column2
    loop at itab into wa.
    at new column2.
    // This will execute when the Value of column 1 change or column2
    // change.
    endat.
    endlloop.
    The solution of your problem is.
    Change your internal table column order ,
    Put the column first for which you want to calculate the sum.
    Thanks & Regards
    Kulvendra Kumar

  • A problem with delays in timed loops and DAQ

    I am programming a simulation for nuclear rewetting for a visitor centre at my company in Switzerland. It involves heating a "fuel rod" and then filling the chamber with water. The pump automatically starts once the rod core reaches 750C. After this, a requirement stipulates that flow rate be checked to ensure the pump is operating at the necessary conditions. If it isn't, the heater must be shutdown to avoid, well... meltdown. However, we must allow 10 seconds for the pump to respond, while still allowing a DAQ rate of 10-100Hz.
    The challenge is that I can't add a delay in my main loop else delay all acquisition, but I can't figure out how to trigger a peripheral loop (with DAQ for the single channel of checking flow) from the main loop, and when the peripheral loop determines if flow has initalised, respond back to the main loop with the okay.
    I think much of my confusion is in the interaction of the loops and the default feedback nodes that labview is putting in willy nilly. Would the only solution be to have two 'main' loops that don't communicate with eachother but rather do the same thing while operating on different timing? Tell me if you want me to post the file (although its on an unnetworked computer and I didn't think it would be too useful).
    Thanks+ Curran
    Solved!
    Go to Solution.

    Here it is! It is not in any form of completion unfortunately.
    So reading in the temp with NI9213 and watercolumn height with NI9215, we determine to turn on the pump with NI9472. NI9421 determines whether the pump is on (there is flow) and I must respond accordingly.
    I have 3 scenarios similar to this one as well, so having redundant loops with different timing like I mentioned would be way to heavy. I think I may have though up of a solution? At the time the pump is initiated, we record the iteration and wait for a number of iterations that correspond to 10s to pass before fulfilling the pump shutoff requirement?
    Attachments:
    rewettin1.vi ‏15 KB

  • Problems with indexing and Apple Loops on External Drive

    Ok, so I've recently moved my entire "Apple Loops" folder to an external drive and created an alias pointing back the "Audio" folder where the apple loops folder used to reside. The problem is when I bring up the loop browser, it's not finding the loops. Do I need to move the Apple Loops Index to the external hard drive as well? I assumed by creating an alias, it would just go to my external drive.

    Someone had said that it's better to use the alias for the apple loops since Logic will always go to where it expects the loops to be first. Which I'm assuming would be faster. But, if it truly doesn't matter and I should just drop all my apple loop folders one by one from my external hard drive, then I"ll do that. Anyone heard about what's faster....alias Vs. external HD direct path?

  • Problems with cfhttp

    Why do we have have 'Connection Failure' when trying to
    execute
    <cfhttp method="get" url="
    http://www.cyberpresse.ca"
    charset="iso-8859-1" resolveurl="yes" result="page"
    timeout="10">
    </cfhttp>

    did you try accessing a distinct page (i.e. index.html)
    instead of just
    http://www.cyberpresse.ca?
    i believe their home page's full url is
    http://www.cyberpresse.ca/apps/pbcs.dll/frontpage...
    Azadi Saryev
    Sabai-dee.com
    http://www.sabai-dee.com

  • Re: problem with char's and loops??

    You have to type out the full expression:
    If (variable != "a"
    && variable != "b"
    && variable != "c")

    ok, thanks, lemme try and get this to work

  • Qsm pc, problem with stop loop

    Hello,
    i tested queue producer/consument with event case, but i have problem with stop the both loop, can you help me with attachment ?
    Attachments:
    queue_mereni_1.zip ‏46 KB
    Global_queue.zip ‏3 KB

    thanks for your answer,
    i had problem with upload *.vi (some mistake), so when a upload *.zip it was ok, but i do not know why..
    please, when i put time out constatn, so when i push "stop" then both loops end - it is ok BUT:
    when i push "stop 2" button (for the second loop) so there is error (in attachment), please do you know why?
    i am sorry for a lot of questions but i try understand it..
    thank you
    Attachments:
    qsm.jpg ‏31 KB

  • Having major problem with deployed installer needing DLLs that I don't seem to use in the application

    I'm a bit confounded on the library situations...I'm not using an RT target...
    though
    when running the deployed executable/installer.... upon start it asks
    for these 2 dlls:  lvuste.dll & lvalarms.dll. which seem to be related to RT  ????  how do I get
    around this?  How would I include these dlls within an executable or installer?
     I'm using 8.5.

    It looks like this was a problem with the way Timed loops link directly to those 2 DLLs.  Does the error ask for those DLLs in a specific folder?  If so you can copy them from their current location (which I believe should be <labview>\resource folder) to the folder that it wants them to be in.  Alternately you can simply remove the timed loops, since timed loops on a Windows PC doesn't really have much benefit over a while loop with a timer.
    Hope this helps... 
    David_L | Certified LabVIEW Architect
    LabVIEW Tools Network | LabVIEW Tools Network Developer Center

  • Is there a phone number to call Adobe.  I go around an endless loop pressing their contact info tabs?  Maybe someone at this sight can help. I am new to digital photo - I have been a B&W film photographer for many years. I have a problem with a Macbook Ai

    Is there a phone number to call Adobe.  I go around an endless loop pressing their contact info tabs?  Maybe someone at this sight can help. I am new to digital photo - I have been a B&W film photographer for many years. I have a problem with a Macbook Air.  It was working fine - I was using LR and a message came on the screen that said something like the memory was dangerously low.  I stopped and tried to delete LR files.  I couldn't do it.  I closed the program and tried reopening and got the message that there is not enough memory available to open LR.  I contacted Apple.  They spent a half hour on the phone with me and eventually told me they didn't know how to help. The tech said that LR had gobbled up all the memory and said I should contact Adobe and ask where and how my photo files are stored and to delete them.  I have several back-ups.  Thanks - Arthur

    This sort of error message only comes up for Lightroom when your hard disk is full. Indeed this has nothing to do with internal memory as that will be intelligently be dealt with. If you have a mac Book Air that is not so surprising as the cheapest versions come with very small hard disks and if you shoot raw with any recent camera, you'll fill up your hard disk very quickly and you can probably only store a few months of pictures if you are a typical photographer. So the bottom line is that you need to create some room on your hard disk. You should move some of your originals to an external hard disk. You can also delete some of your backup copies of your catalog file that Lightroom automatically generates every few days and that quickly gobble up hard disk space. So first figure out how full your hard disk is. To see that, go to the apple menu, hit -> About this Mac -> More info->Storage. You should see your internal hard disk on top and you'll find that it is almost entirely full with photos. Now find your Lightroom catalog file using Finder. It is usually in a folder in the Pictures folder in your home directory. You should see a Lightroom 5 Catalog.lrcat file, a previews file and a folder called backups. Inside the backups folder, you'll find a lot of subfolders. They have names that show the dates the backups were created. If you have backups of your entire hard disk, you can delete these backups when they are older than a few months. I usually only keep the last 4 around. Just drag the folders into the trash can on the dock on the bottom of your screen and empty the trash. This will probably free up enough space that Lightroom will already run again. Now start thinking about where you will want to store older images. If you have a good USB3 or Thunderbolt hard disk that is probably the best option. There is a video here by Adobe that has some instructions on how to do this: Is Your Hard Drive Full? Here’s How to Move Images to Another Drive in Lightroom. « Julieanne Kost's Blog If that doesn't work because you don't have enough hard drive space to run Lightroom yet, here is another set of instructions to move your files using the finder to the other hard disk: How do I move only my photos to another hard drive, leaving the catalog where it is? - The Lightroom Queen. If you follow that, as soon as you confirm all your images are on the new hard disk, you can delete them from your internal one. She is not so clear about that part but if you don't delete the originals that you moved off you don't free up space. You should move the folder structure over to the new hard disk and then reconnect the folders in Lightroom. That should make it refind all your images.
    That said, if you are uncomfortable with the computer in itself, your best bet is to find a local photography club. There is invariably a Lightroom savvy person in there that could help you move your files. That might be your best bet if you are uncomfortable moving these yourself. A general mac savvy person like you would find at an Apple store or so generally will not be able to help you with this except when they are photographers themselves and know Lightroom. You might get lucky with that.

  • Problem with java swing button and loop

    Problem with java swing button and loop
    I�m using VAJ 4.0. and I�m doing normal GUI application. I have next problem.
    I have in the same class two jswing buttons named start (ivjGStart) and stop (ivjGStop) and private static int field named Status where initial value is 0. This buttons should work something like this:
    When I click on start button it must do next:
    Start button must set disenabled and Stop button must set enabled and selected. Field status is set to 1, because this is a condition in next procedure in some loop. And then procedure named IzvajajNeprekinjeno() is invoked.
    And when I click on stop button it must do next:
    Start button must set enabled and selected and Stop button must set disenabled.
    Field status is set to 0.
    This works everything fine without loop �do .. while� inside the procedure IzvajajNeprekinjeno(). But when used this loop the start button all the time stay (like) pressed. And this means that a can�t stop my loop.
    There is java code, so you can get better picture:
    /** start button */
    public void gStart_ActionEvents() {
    try {
    ivjGStart.setEnabled(false);
    ivjGStop.setEnabled(true);
    ivjGStop.setSelected(true);
    getJTextPane1().setText("Program is running ...");
    Status = 1;
    } catch (Exception e) {}
    /** stop button */
    public void gStop_ActionEvents() {
    try {
    ivjGStart.setEnabled(true);
    ivjGStart.setSelected(true);
    ivjGStop.setEnabled(false);
    getJTextPane1().setText("Program is NOT running ...");
    Status = 0;
    } catch (Exception e) {
    /** procedure IzvajajNeprekinjeno() */
    public void IzvajajNeprekinjeno() {  //RunLoop
    try {
    int zamik = 2000; //delay
    do {
    Thread.sleep(zamik);
    PreberiDat(); //procedure
    } while (Status == 1);
    } catch (Exception e) {
    So, I'm asking what I have to do, that start button will not all the time stay pressed? Or some other aspect of solving this problem.
    Any help will be appreciated.
    Best regards,
    Tomi

    This is a multi thread problem. When you start the gui, it is running in one thread. Lets call that GUI_Thread so we know what we are talking about.
    Since java is task-based this will happen if you do like this:
    1. Button "Start" is pressed. Thread running: GUI_Thread
    2. Event gStart_ActionEvents() called. Thread running: GUI_Thread
    3. Method IzvajajNeprekinjeno() called. Thread running: GUI_Thread
    4. Sleep in method IzvajajNeprekinjeno() on thread GUI_Thread
    5. Call PreberiDat(). Thread running: GUI_Thread
    6. Check status. If == 1, go tho 4. Thread running: GUI_Thread.
    Since the method IzvajajNeprekinjeno() (what does that mean?) and the GUI is running in the same thread and the event that the Start button has thrown isn't done yet, the program will go on in the IzvajajNeprekinjeno() method forever and never let you press the Stop-button.
    What you have to do is do put either the GUI in a thread of its own or start a new thread that will do the task of the IzvajajNeprekinjeno() method.
    http://java.sun.com/docs/books/tutorial/uiswing/index.html
    This tutorial explains how to build a multi threaded gui.
    /Lime

  • Problem with multiple calls to hr_infotype_operation in a loop

    Hi,
    Im using infotyp 2003 with the following situation. For a date, e.g. 2011/07/20 and a person_nr I have several time entries, like 08:00-09:00, 10:00-12:00, 15:00-17:00. Now I read the entries with  HR_READ_INFOTYPE and store them back unmodified with hr_infotype_operation in a loop in the same report.
    data: i_p2003 type standard table of p2003.
    CALL FUNCTION 'HR_READ_INFOTYPE'
             EXPORTING
    *          TCLAS                 = 'A'
               pernr                 = person_nr
               infty                 = '2003'
             BEGDA                 = '20110720'
              ENDDA                 = '20110720'
    *          BYPASS_BUFFER         = ' '
    *          LEGACY_MODE           = ' '
    *        IMPORTING
    *          SUBRC                 =
             tables
               infty_tab             =  i_p2003
            EXCEPTIONS
              INFTY_NOT_FOUND       = 1
              OTHERS                = 2.
    loop at i_p2003 assigning <p>.
    CALL FUNCTION 'HR_INFOTYPE_OPERATION'
            EXPORTING
              infty         = '2003'
              number       = person_nr
              validityend   = '20110720'
              validitybegin = '20110720'
              record        = <p>
              operation     = 'MOD'
              dialog_mode   = '0'
            IMPORTING
              return        = return_struct
              key           = personaldatakey
            EXCEPTIONS
              OTHERS        = 0.
    endloop.
    the first call to hr_infotype_operation succeeds but the following operations fail because of collision. This example is stupid, I know, but it shows the core of a problem I have in a more complex report.
    I face the problem that several calls to HR_INFOTYPE_OPERATION cause a collision error even if there cannot be a collision because the data are unchanged.
    Any hints on this.
    Regards,
    JOP

    Hi, you must execute a 'BAPI_EMPLOYEE_ENQUEUE' before 'HR_INFOTYPE_OPERATION' and a 'HR_EMPLOYEE_DEQUEUE' after.
    See next example:
    Bloqueo del empleado
    CALL FUNCTION 'BAPI_EMPLOYEE_ENQUEUE'
      EXPORTING
        NUMBER = PERNR.
    IF SY-SUBRC IS INITIAL.
    Si se pudo bloquear el empleado intenta
    insertar el infotipo
    CALL FUNCTION 'HR_INFOTYPE_OPERATION'
      EXPORTING
        INFTY         = '2001'
        NUMBER        = P0001-PERNR
        SUBTYPE       = i_p2001-subty
        VALIDITYEND   = acdate
        VALIDITYBEGIN = acdate
        RECORD        = i_p2001
        RECORDNUMBER  = '000'
        OPERATION     = 'INS'
        TCLAS         = 'A'
        DIALOG_MODE   = '0'
        NOCOMMIT      = ' '
      IMPORTING
        RETURN        = I_RETURN
        KEY           = I_KEY.
    IF SY-SUBRC IS INITIAL.
      VARGT = 'Y'.
    ELSE.
      VARGT = 'N'.
    ENDIF.
    No se hace COMMIT debido que el estandar lo realiza
    CALL FUNCTION 'BAPI_TRANSACTION_COMMIT'.
    Desbloqueo del empleado
    CALL FUNCTION 'HR_EMPLOYEE_DEQUEUE'
    EXPORTING
    NUMBER = PERNR.
    Regards,
    Diego.

  • Problem with non-stop looping

    This file has been supposedly changed from As2 to As3. It seems as if it used to stop when I first got it. But the links didn't work. When I followed troubleshooting protocols, it started looping non-stop.
    Please help. I can't seem to attach the flv and the action script files. All I get from the output window is "Fonts should be embedded for any text that may be edited at runtime, other than text with the "Use Device Fonts" setting. Use the Text > Font Embedding command to embed fonts."
    Please help. I paid a coder to switch the file from as2 to as3 and this is what he gave me...

    contact that coder and let them know the problem.  if it's a problem with their code, they should fix it without charge.

Maybe you are looking for