Can we call the Human Task operations and the Rule Designer, etc. from outs

Hi,
I just had one of my customers ask me -
Can we call the Human Task operations and the Rule Designer, etc. from outside the SOA Suite ??
Since these are independent applications, and that they are based on Service Oriented Architecture, I should be able to call these services from outside Oracle SOA Suite (SCA) for reuse.
In case you have any idea about the possibilities, could you share some real world examples / URLs please ?
Thanks & Regards

Hi Vaibhav,
Yes, you are right. We are using Oracle SOA suite 11g.
My question is, can these Web Services be directly accessed from, say a .NET application without using BPEL PM, or is using BPEL a must to invoke these services in Human Task operations, Rule Designer, etc ?
Regards

Similar Messages

  • I just upgraded to iOS 7 and I realized that the "Completed" tasks folder in the "Reminders" application was erased. I had important information there. How can I recover my completed tasks and the dates the tasks were completed?.

    I just upgraded to iOS 7 and I realized that the "Completed" tasks folder in the "Reminders" application was erased. I had important information there. How can I recover my completed tasks and the dates the tasks were completed?.

    Restore from your iTune backup.

  • Can't uninstall Premier Pro.  I keep getting messages to quit the Adobe QT32 Server and the dynamiclink manager.  I have no idea how to do these tasks?

    Can't uninstall Premier Pro.  I keep getting messages to quit the Adobe QT32 Server and the dynamiclink manager.  I have no idea how to do these tasks?

    You can kill these 2 task by opening the Windows Task manager (CTRL+ALT+SUPPR)
    Then find the processes named :
    Adobe QT32 Server
    Adobe Dynamic Link Manager
    Kill theses 2 tasks (right click then END OF TASK)
    If you got many of theses tasks, kill each.
    Then uninstall Premiere. It should be OK
    good luck
    noar

  • Database call in human task

    Hello,
    Is it possible to make database call to save some data in human task into database and later taking this task and submitting it as done to the process?
    What I want to achieve is that when user gets task, he/she opens it and enters some information and saves it into database, later returns, reviews information he/she entered and submits it to process (ends task).
    Any suggestions appreciated.

    Yes, it is possible assign a group as participant of some human task, passing the group name as parameter.
    I have tested just now.
    It works pretty well in SOA 11.1.1.4 (BPEL or BPM).
    Make sure add a data parameter in your human task definition and pass a valid group name to it.
    At the Assignment tab, in the participants' list, add a group, data type by expression, and set the value to the right xpath expression to the corresponding parameter.
    For example: /task:task/task:payload/task:group
    If it is not working look the SOA log files, probably you'll find some information about the error there. Maybe there is some problem with your jazn.com configuration.
    You can also test if there is something wrong related to the group name, trying to transfer some task to the same group by the worklist.

  • Revoking or undoing human task operation

    Is there a way to undo or revoke a human task operation in BPM workflow. For example a customer is submiting a new sales order, after submitting the sales order can he undo the process or save the order for later submission.
    Please provide some links .

    What version is this? 11g? There is no compensation in BPM 11g- that feature is only available in BPEL. It all depends on the requirements and the user interaction flow. You can use an event sub-process that has a a message start event and apply correlation key with "uses" instead of "initiates" See Arun Pareek's blog "Cancel Booking Scenario" here http://beatechnologies.wordpress.com/2011/10/17/working-with-custom-correlation-in-oracle-bpm-suite-11g-ps4-feature-pack/
    -Vikram

  • Since installing LTR 5.4, which I've now upgraded to 5.6, I've encountered repeated slowness and malfunctions in operations, especially when using the Compare View function and the Tab key to open and close the right and left side panels.  Such problems n

    Since installing LTR 5.4, which I've now upgraded to 5.6, I've encountered repeated slowness and malfunctions in operations, especially when using the Compare View function and the Tab key to open and close the right and left side panels.  Such problems never arose during two years of using LTR-4 and nothing else has changed on my computer.  I have a pretty simple system with only a few plug-ins, which are usually not in operation.  I have 12GB of RAM in my Windows 7 PC.  I could illustrate these problems with screen shots if you would tell me how to submit screen shots.  Otherwise I will try to describe the problems in words.
    The problem is clearly cumulative, growing worse as usage time passes.  Compare View feature gradually slows down and eventually seems to choke as my work session proceeds. If I Exit LTR and re-enter and start all over, things will work normally for maybe 30 minutes, but then the Compare View feature begins to become very slow to respond.   In a recent example with my screen full of thumbnails in Library mode I highlighted two images to compare. LTR started to open the Compare View screen by first having the top row of thumbnails disappear to be replaced by the "SELECT" and "CANDIDATE" words in their spaces  (but no images), but Compare View never succeeded in gaining control of the screen. After some seconds the top row of thumbnails reasserted its position and the Compare View windows disappeared. But LTR kept trying to bring them back. Again the top row of thumbnails would go away, Select and candidate would reappear, try again, and give up. This went on for at least 2-3 minutes before I tried to choose File and Exit, but even that did not initially want to respond. It doesn't like to accept other commands when it's trying to open Compare View. Finally it allowed me to exit.
    To experiment I created a new catalog of 1100 images.  After 30-40 minutes, the Compare View function began to operate very slowly. With left and right side panels visible and two thumbnails highlighted, hitting Compare View can take half a minute before the two mid-size  images open in their respective SELECT and CANDIDATE windows. When the side panels are open and two images are in the Select/Candidate spaces, hitting the Tab button to close the side panels produces a very delayed response--25-30 seconds to close them, a few more seconds to enlarge the two images to full size. To reverse the process (i.e., to recall the two side panels), hitting Tab would make the two sides of the screen go black for up to a minute, with no words visible. Eventually the info fields in the panels would open up.
    I also created a new user account and imported a folder of 160 images. After half an hour Compare View began mis-placing data.  (I have a screen shot to show this.)  CANDIDATE appears on the left side of SELECT, whereas it should be on the right. The accompanying camera exposure data appears almost entirely to the left of the mid-screen dividing line. Although the Candidate and Select headings were transposed, the image exposure data was not, but the data for the image on the right was almost entirely to the left of the line dividing the screen in two.
    Gurus in The Lightroom Forum have examined Task Manager data showing Processes running and Performance indicators and they see nothing wrong.  I could also send screen shots of this data.
    At this point, the only way I can process my images is to work 30-40 minutes and then shut down everything, exit, and re-start LTR.  This is not normal.  I hope you can find the cause, and then the solution.  If you would like to see my screen shots, tell me how to submit them.
    Ollie
    [email protected]

    Since installing LTR 5.4, which I've now upgraded to 5.6, I've encountered repeated slowness and malfunctions in operations, especially when using the Compare View function and the Tab key to open and close the right and left side panels.  Such problems never arose during two years of using LTR-4 and nothing else has changed on my computer.  I have a pretty simple system with only a few plug-ins, which are usually not in operation.  I have 12GB of RAM in my Windows 7 PC.  I could illustrate these problems with screen shots if you would tell me how to submit screen shots.  Otherwise I will try to describe the problems in words.
    The problem is clearly cumulative, growing worse as usage time passes.  Compare View feature gradually slows down and eventually seems to choke as my work session proceeds. If I Exit LTR and re-enter and start all over, things will work normally for maybe 30 minutes, but then the Compare View feature begins to become very slow to respond.   In a recent example with my screen full of thumbnails in Library mode I highlighted two images to compare. LTR started to open the Compare View screen by first having the top row of thumbnails disappear to be replaced by the "SELECT" and "CANDIDATE" words in their spaces  (but no images), but Compare View never succeeded in gaining control of the screen. After some seconds the top row of thumbnails reasserted its position and the Compare View windows disappeared. But LTR kept trying to bring them back. Again the top row of thumbnails would go away, Select and candidate would reappear, try again, and give up. This went on for at least 2-3 minutes before I tried to choose File and Exit, but even that did not initially want to respond. It doesn't like to accept other commands when it's trying to open Compare View. Finally it allowed me to exit.
    To experiment I created a new catalog of 1100 images.  After 30-40 minutes, the Compare View function began to operate very slowly. With left and right side panels visible and two thumbnails highlighted, hitting Compare View can take half a minute before the two mid-size  images open in their respective SELECT and CANDIDATE windows. When the side panels are open and two images are in the Select/Candidate spaces, hitting the Tab button to close the side panels produces a very delayed response--25-30 seconds to close them, a few more seconds to enlarge the two images to full size. To reverse the process (i.e., to recall the two side panels), hitting Tab would make the two sides of the screen go black for up to a minute, with no words visible. Eventually the info fields in the panels would open up.
    I also created a new user account and imported a folder of 160 images. After half an hour Compare View began mis-placing data.  (I have a screen shot to show this.)  CANDIDATE appears on the left side of SELECT, whereas it should be on the right. The accompanying camera exposure data appears almost entirely to the left of the mid-screen dividing line. Although the Candidate and Select headings were transposed, the image exposure data was not, but the data for the image on the right was almost entirely to the left of the line dividing the screen in two.
    Gurus in The Lightroom Forum have examined Task Manager data showing Processes running and Performance indicators and they see nothing wrong.  I could also send screen shots of this data.
    At this point, the only way I can process my images is to work 30-40 minutes and then shut down everything, exit, and re-start LTR.  This is not normal.  I hope you can find the cause, and then the solution.  If you would like to see my screen shots, tell me how to submit them.
    Ollie
    [email protected]

  • Error while updating the Human task

    When I try to update my Human task the following error is occuring in JDeveloper and I can't save my changes, any help will be appreciable. thank you.
    Uncaught exception
    java.lang.NullPointerException
    o.bpel.services.workflow.verification.impl.TaskContentAccess.getAccess(TaskContentAccess.java:127)
    o.tip.tools.ide.workflow.util.AccessRulesUtil.getDefaultActionAccessData(AccessRulesUtil.java:265)
    o.tip.tools.ide.workflow.util.AccessRulesUtil.getChangedActionAccessData(AccessRulesUtil.java:174)
    o.tip.tools.ide.workflow.editor.tab.TaskActionAccessConfigurationPanel.getData(TaskActionAccessConfigurationPanel.java:272)
    o.tip.tools.ide.workflow.editor.tab.TaskAccessConfigurationPanel.getActionData(TaskAccessConfigurationPanel.java:103)
    o.tip.tools.ide.workflow.editor.tab.AdvancedOptionsPanel.getData(AdvancedOptionsPanel.java:215)
    o.tip.tools.ide.workflow.editor.tab.AdvancedOptionsEditor$LocalPropertyChangeListener.propertyChange(AdvancedOptionsEditor.java:141)
    j.beans.PropertyChangeSupport.firePropertyChange(PropertyChangeSupport.java:339)
    j.beans.PropertyChangeSupport.firePropertyChange(PropertyChangeSupport.java:276)
    j.a.Component.firePropertyChange(Component.java:8128)
    o.tip.tools.ide.workflow.editor.tab.AssigneesEditor.propertyChange(AssigneesEditor.java:186)
    j.beans.PropertyChangeSupport.firePropertyChange(PropertyChangeSupport.java:339)
    j.beans.PropertyChangeSupport.firePropertyChange(PropertyChangeSupport.java:276)
    j.a.Component.firePropertyChange(Component.java:8128)
    o.tip.tools.ide.workflow.editor.v2.StageEditor.firePropertyChange(StageEditor.java:1488)
    o.tip.tools.ide.workflow.editor.v2.StageEditor.propertyChange(StageEditor.java:1081)
    j.beans.PropertyChangeSupport.firePropertyChange(PropertyChangeSupport.java:339)
    j.beans.PropertyChangeSupport.firePropertyChange(PropertyChangeSupport.java:276)
    j.a.Component.firePropertyChange(Component.java:8128)
    o.tip.tools.ide.workflow.editor.v2.ParticipantEditor.editParticipant(ParticipantEditor.java:1304)
    o.tip.tools.ide.workflow.editor.v2.ParticipantEditor$LocalMouseAdapter.mouseClicked(ParticipantEditor.java:1004)
    j.a.Component.processMouseEvent(Component.java:6266)
    jx.s.JComponent.processMouseEvent(JComponent.java:3267)
    j.a.Component.processEvent(Component.java:6028)
    j.a.Container.processEvent(Container.java:2041)
    j.a.Component.dispatchEventImpl(Component.java:4630)
    j.a.Container.dispatchEventImpl(Container.java:2099)
    j.a.Component.dispatchEvent(Component.java:4460)
    j.a.LightweightDispatcher.retargetMouseEvent(Container.java:4574)
    j.a.LightweightDispatcher.processMouseEvent(Container.java:4247)
    j.a.LightweightDispatcher.dispatchEvent(Container.java:4168)
    j.a.Container.dispatchEventImpl(Container.java:2085)
    j.a.Window.dispatchEventImpl(Window.java:2478)
    j.a.Component.dispatchEvent(Component.java:4460)
    j.a.EventQueue.dispatchEvent(EventQueue.java:599)
    j.a.EventDispatchThread.pumpOneEventForFilters(EventDispatchThread.java:269)
    j.a.EventDispatchThread.pumpEventsForFilter(EventDispatchThread.java:184)
    j.a.EventDispatchThread.pumpEventsForHierarchy(EventDispatchThread.java:174)
    j.a.EventDispatchThread.pumpEvents(EventDispatchThread.java:169)
    j.a.EventDispatchThread.pumpEvents(EventDispatchThread.java:161)
    j.a.EventDispatchThread.run(EventDispatchThread.java:122)
    Edited by: user9351838 on 15-Feb-2012 18:45

    Seems you Human Task has run into not finding the input configurations you have made for the same.
    Please check the .task files generated. and delete it from Composite and trying recreating the Human Task.
    Reg,
    MaShek

  • Query on rendering the Human Tasks in the customized GUI application.

    Hi All,
    In oracle11g BPEL, Is there any way to render the Human Tasks in the Customized GUI (Weblogic Portal) application rather that using the applications like "Oracle BPM WorkList"?. Does the Oracle11g BPEL supports this ?. My requirement is that, i need to render the Human tasks inside my own GUI application. I do not want to allow the end user of my application to use the other GUI applications like Work List to wotk up on the human tasks. Instead of this, User must be able to access and work up on the BPEL human tasks through my Customized GUI (Weblogic Portal) application. Is there any way in Oracle11g BPEL to achieve the required functionality?.
    Edited by: user538948 on Sep 2, 2012 11:03 PM
    Edited by: user538948 on Sep 5, 2012 2:04 AM

    Hi Naga
    http://docs.oracle.com/cd/E14571_01/apirefs.1111/e10660/toc.htm
    1. I would not recommend using APIs unless and otherwise if you do not have any other option. You can always create the TaskForms in your own custom pages using out of box generated bindings for each .TASK file. This gives more flexibility. There are lots of stuff associated with a Task apart from your own custom payload like full Task details, system attributes, headers, history, comments/attachments etc. You do not want to use APIs to get all these.
    The below 2 links should give you an overview of overall architecture of a Workflow and TaskForms.
    Re: Integrating BPM taskflows into an ADF application
    Re: deploying a large Oracle BPM Application with multiple UI projects
    Re: What exactly 'PAYLOAD' Means???
    Once you have basics covered, refer oracle docs also that shows how to reuse a single project.
    Thanks
    Ravi Jegga

  • Dynamic Sequential List of Approvers in the Human Task

    Hi all - I have this asynchronous BPEL process and want to dynamically assign a Sequential List of Approvers that are the result of an Invoke of a Database Adapter.
    1. Added the OutputCollection of the Invoke as a parameter to the Human Task (element type).
    2. Under Assignment and Routing Policy, chose Sequential List of Approvers, and By Expression, chose the value from the OutputCollection from the payload.
    3. After deployment, the instance falls through to completion without errors, but without assigning a task to any approvers. I can see in the Invoke where it pulled the names I want to be assigned.
    Any help or direction would be greatly appreciated.
    Using JDeveloper 10.1.3.3

    I tried to recreate the problem like listed above, but after I add the Outputcollection of the Invoke as a parameter, there is no schema info (not even task:task) when editing the Assignment and Routing Policy section. At any rate, there weren't errors to speak of - the instance completed with "The state of this instance is Completed".
    In the meantime, I've used a while loop to loop through a sequence of approvers that are result of a query. I'll have to keep track of approvers and include them in each new payload I think.

  • Query regarding changing the human task type

    Hi,
    I am new to BPM.I have created a process with two tasks and mistakenly selected both the human tasks with the initiator pattern.And now I am getting this compilation error which says my process contains more than one initiator tasks.Is there any way in which I can change the human task type to simple after the process has been created?
    Thanks in advance

    Hi,
    Thanks for your reply.I found that out too.It is really strange that there is no way in which you can change the type once you have created a user task.
    Thanks
    Rahul

  • Control mult access to the Human Task

    Hi All,
    I have a human task in the BPM process which is assign to the role of the user. I've noticed that the task can be accessed by multiple users at the same time within the BPM workspace task list.
    How can I control it that when one person is already open the human task and nobody can open it. Is it a way to
    set the concurrency level for bpm human task?
    thanks in advance.

    Guessing you might already know this, but the human tasks have an auto-claim property that is turned on by default. The way this works is that if more than one end user selects a task at the same time, the first one to submit the task will be the one that gets committed. While I'd agree that it's not ideal, the second end user (who also had the form displayed for the task when they simultaneously selected the same task) will not be able to submit the task. The second end user sees this rather cryptic message when they try to submit the form:
    >
    "Insufficient privileges to access the task information for this task. User 9616d414-d4bc-4573-9d39-cc100fda7391 cannot access the task information for task: {1}. Ensure that the user has been granted appropriate privileges to access the task information for this task."
    >
    This doesn't sound like the route you want to go either, but from the Workspace - end users can "Claim" a task from the Actions dropdown. Claim is useful when an end user is working on a work item instance and they want to make sure that no one else assigned also tries to work on the same work item instance. End users do not have to claim tasks in the Workspace, but it's useful to keep another end user from working on (or even seeing in their queue) the same work item instance that they had already started working on.
    Once claimed, a work item instance can only be viewed and worked on by the user who claimed it and anyone assigned to the Process Owner role (it is shown in the Process Owner's "My Staff Tasks" tab - not in their "My Tasks" tab). The instance could be returned back into the general queue by clicking the Actions dropdown and clicking Release.
    Dan

  • How to create payload attribute to the Human Task

    Any examples/doco will be appriciated.

    You open up the human task file (.task) and on the Data tab you add in whatever variables you want to pass to the human task. These can be simple XSD types such as strings, or complex objects ("Add Other Payload") which are elements which have their own .xsd file, typically Business Objects defined in the business catalog. This is how you configure the payload once the .task file has already been created.
    If you have a BPMN process and you're adding a new interactive activity, then you can define the payload while you're creating the activity itself. After you drop the activity onto the process, click the implementation tab, click the green plus icon to add a new human task, then click the plus icon in the parameters section to define the payload. You can drag and drop objects defined as Process or Project data objects from the palette that appears on the right directly into the parameters section on the left. Make sure to mark them as editable if you want users to be allowed to change the values in the human task.
    Edited by: Mike Rokitka on May 14, 2010 10:36 AM
    Edited by: Mike Rokitka on May 14, 2010 10:37 AM

  • Can we call Data flow Task as Container

    Hi All,
    Can we call Data flow Task as Container  If So what are conditions required to Satisfy as a Container 
    Thanks
    Ravindra

    Hi kavali1985,
    Containers are objects in SQL Server Integration Services that provide structure to packages and services to tasks. They support repeating control flows in packages, and they group tasks and containers into meaningful units of work. Containers can include
    other containers in addition to tasks.
    Packages use containers for the following purposes:
    • Repeat tasks for each element in a collection, such as files in a folder, schemas, or SQL Server Management Objects (SMO) objects.
    • Repeat tasks until a specified expression evaluates to false.
    • Group tasks and containers that must succeed or fail as a unit.
    The Data Flow task encapsulates the data flow engine that moves data between sources and destinations, and lets the user transform, clean, and modify data as it is moved. Addition of a Data Flow task to a package control flow makes it possible for the package
    to extract, transform, and load data. We can add Data Flow task to Containers, but Containers can’t be included in Data Flow tasks.
    Reference:
    Integration Services Containers
    Data Flow Task
    If you have any more questions, please feel free to ask.
    Thanks,
    Wendy Fu
    Wendy Fu
    TechNet Community Support

  • I am trying to download a variety of files and when it is finished, the Mac freezes up and the task bar continues to blink on and off. I have to go into Firefox and actually quit the application to continue. Any help is very much appreciated

    I am trying to download a variety of files and when it is finished, the Mac freezes up and the task bar continue to blink on and off.
    I have to go into Firefox and actually quit the application to continue. Any help is very much appreciated.

    are you backing up files, or doing a Time machine backup, either way, the Time machine will STOP when finished and show "last backup at XXXXXX"  meaning its done...... OR if when transferring files, it will show a progress bar on your desktop and vanish when files are copied.
    Open up the Hitachi drive (your G drive is made by Hitachi, and the best made by the way).....and see if the files are there.
    a MORE VISUAL way is to open the hard drive file, and drag and drop files INTO the Gdrive and you can see them visually be copied there as you do it.
    To see your HD on your desktop GOTO  FINDER......PREFERENCES....then GENERAL TAB.........check the box marked HARD DRIVES.........then your Gdrive will appear on your desktop........open it from there,  and DRAG and drop files from anywhere INTO the Gdrive....... easy visual way to see the files being copied into the Gdrive.

  • The book who I selected doesn't move to the right in CheckedListBox and the reason is that I can't make an return.his code is good just for first user who I selected

    Imprumut = loan
    I have 6 tables: 
    I have one combobox(from where I select utilizatori(users)) and 2 CheckedListBox(Between first box and second box I have 2 buttons:imprumuta(loan) and restituie(return))
    This c# code works just for first user: Utilizator, but something's not good. When I add new utilizator(user) and select it,  the loan will be add in my SQL DataBase, but... the book who I selected doesn't move to the right in CheckedListBox and the reason
    is that I can't make an return
    using System;
    using System.Collections.Generic;
    using System.ComponentModel;
    using System.Data;
    using System.Drawing;
    using System.Linq;
    using System.Text;
    using System.Threading.Tasks;
    using System.Windows.Forms;
    using MySql.Data.MySqlClient;
    namespace proiect
        public partial class Imprumut : Form
            MySqlConnection con = new MySqlConnection("DataSource=localhost;UserID=root;database=biblio1");
            //stabilim conexiunea
            MySqlCommand comUser;//interogarea pe baza careia umplem comboBox
            MySqlDataAdapter adaptu;
            DataTable userT = new DataTable();
            MySqlCommand cmdCarti;//interogarea pe baza careia umplem checkListBox
            MySqlDataAdapter adaptCarti;
            DataTable CartiTabel = new DataTable();
            MySqlCommand cmdCartiImprumutate;//interogarea pe baza careia umplem checkListBox
            MySqlDataAdapter adaptCartiImprumutate;
            DataTable CartiImprumutateTabel = new DataTable();
            public int UserId
                get
                    return Convert.ToInt32(user.SelectedValue.ToString());
            void Completez_Combo_User()
                try
                    comUser = new MySqlCommand("SELECT n.userid, CONCAT(n.UserName) as UserN FROM users n left join userroles us on n.userid=us.userid left join roles r on r.roleid=us.roleid WHERE r.roleid='3'",
    con);
                    adaptu = new MySqlDataAdapter(comUser);
                    adaptu.Fill(userT);
                    user.Items.Clear();
                    user.DataSource = userT;
                    //DataTable din care sunt preluate datele pentru ComboBox user
                    user.ValueMember = "UserID";
                    //Valoarea din coloana UserID nu se afiseaza in combobox
                    user.DisplayMember = "UserN";
                    //Eelementele afisate in combobox, preluate din concatenarea mai multor coloane
                catch (Exception ex)
                    MessageBox.Show(ex.Message);
            void Completez_CheckList_Carti()
                try
                    cmdCarti = new MySqlCommand("SELECT BookID, CONCAT(title, ' ', ISBN,' ',author)as date_carte FROM books WHERE NumberLeft > 0 ORDER BY BookID", con);
                    adaptCarti = new MySqlDataAdapter(cmdCarti);
                    adaptCarti.Fill(CartiTabel);
                    imp.Items.Clear();
                    //carti.DataSource=null;
                    imp.DataSource = CartiTabel;
                    //DataTable din care sunt preluate datele pentru ComboBox carte
                    imp.ValueMember = "BookID";
                    //Valoarea din coloana BookID nu se afiseaza in combobox
                    imp.DisplayMember = "date_carte";
                    //Eelementele afisate in combobox, preluate din concatenarea mai multor coloane
                catch (Exception ex)
                    MessageBox.Show(ex.Message);
                void Completez_CheckList_Cartires()
                    try
                        cmdCartiImprumutate = new MySqlCommand(string.Format("SELECT b.BookID, CONCAT(title, ' ', ISBN,' ',author) as date_carte FROM books b inner join userbooks ub on ub.bookid = b.bookid
    WHERE ub.userid = {0} ORDER BY BookID", UserId), con);
                        adaptCartiImprumutate = new MySqlDataAdapter(cmdCartiImprumutate);
                        adaptCartiImprumutate.Fill(CartiImprumutateTabel);
                        res.Items.Clear();
                        //carti.DataSource=null;
                        res.DataSource = CartiImprumutateTabel;
                        //DataTable din care sunt preluate datele pentru ComboBox carte
                        res.ValueMember = "BookID";
                        //Valoarea din coloana BookID nu se afiseaza in combobox
                        res.DisplayMember = "date_carte";
                        //Eelementele afisate in combobox, preluate din concatenarea mai multor coloane
                    catch (Exception ex)
                        MessageBox.Show(ex.Message);
            void Inregistrez_imprumut_in_BD()
                int useridu = Convert.ToInt32(user.SelectedValue.ToString()); //useridu = id book
                int bookidi;
                try
                    DateTime azi = System.DateTime.Now; //  Data imprumutului
                    DateTime atunci = termenul.Value;   //  Data restituirii
                    MySqlTransaction tranzactie = con.BeginTransaction();
                    MySqlCommand adaugImpr = new MySqlCommand("INSERT INTO bookshistory(UserID, BookID,BorrowDate) VALUES(@UserID, @BookID, CAST(@BorrowDate as datetime))", con);
                    MySqlCommand scadCarti = new MySqlCommand("UPDATE books SET numberleft=numberleft-1 WHERE bookid=@bookid", con);
                    MySqlCommand adauga_userbooks = new MySqlCommand("INSERT INTO userbooks(userId,bookID)VALUES(@userID,@bookID)", con);
                    adauga_userbooks.Transaction = tranzactie;
                    adaugImpr.Transaction = tranzactie;
                    scadCarti.Transaction = tranzactie;
                    try
                        foreach (int i in imp.CheckedIndices)
                            imp.SelectedIndex = i;
                            bookidi = Convert.ToInt32(imp.SelectedValue.ToString());
                            MessageBox.Show(bookidi.ToString());
                                     //bookidi va fi id-ul cartea bifata, pe rand din checklistBox
                                     //Inregistrez in tabela imprumut
                            adaugImpr.Parameters.AddWithValue("@UserID", useridu);
                            adaugImpr.Parameters.AddWithValue("@BookID", bookidi);
                            adaugImpr.Parameters.AddWithValue("@BorrowDate", azi);
                            adaugImpr.ExecuteNonQuery();
                            adaugImpr.Parameters.Clear();
                            adauga_userbooks.Parameters.AddWithValue("@userID", useridu);
                            adauga_userbooks.Parameters.AddWithValue("@bookID", bookidi);
                            adauga_userbooks.ExecuteNonQuery();
                            adauga_userbooks.Parameters.Clear();
                                    //Scad numarl de carti disponibile pentru cartea imprumutat
                            scadCarti.Parameters.AddWithValue("@bookid", bookidi);
                            scadCarti.ExecuteNonQuery();
                            scadCarti.Parameters.Clear();
                        tranzactie.Commit();
                    catch (Exception ex)
                        tranzactie.Rollback();
                        string message = ex.Message;
                        if (ex.Message.ToLower().Contains("duplicate entry"))
                            message = "Una dintre carti mai exista deja";
                        MessageBox.Show(message);
                catch (Exception ex)
                    MessageBox.Show(ex.Message);
            void Inregistrez_restituire_in_BD()
                int useridu = Convert.ToInt32(user.SelectedValue.ToString()); //useridu = id book
                int bookidi;
                try
                    DateTime azi = System.DateTime.Now; //  Data imprumutului
                    DateTime atunci = termenul.Value;   //  Data restituirii
                    MySqlTransaction tranzactie = con.BeginTransaction();
                    MySqlCommand modificIstoric = new MySqlCommand("UPDATE bookshistory SET returndate = @returnDate WHERE userID = @userID AND bookID = @bookID", con);
                    MySqlCommand adaugCarti = new MySqlCommand("UPDATE books SET numberleft = numberleft + 1 WHERE bookID = @bookID", con);
                    MySqlCommand sterge_userbooks = new MySqlCommand("DELETE  FROM userbooks WHERE userID = @userID AND bookID = @bookID", con);
                    sterge_userbooks.Transaction = tranzactie;
                    modificIstoric.Transaction = tranzactie;
                    adaugCarti.Transaction = tranzactie;
                    try
                        foreach (int i in res.CheckedIndices)
                            res.SelectedIndex = i;
                            bookidi = Convert.ToInt32(res.SelectedValue.ToString());
                            MessageBox.Show(bookidi.ToString());
                            //bookidi va fi id-ul cartea bifata, pe rand din checklistBox
                            //Inregistrez in tabela imprumut
                            modificIstoric.Parameters.AddWithValue("@UserID", useridu);
                            modificIstoric.Parameters.AddWithValue("@BookID", bookidi);
                            modificIstoric.Parameters.AddWithValue("@returnDate", termenul.Value);
                            modificIstoric.ExecuteNonQuery();
                            modificIstoric.Parameters.Clear();
                            sterge_userbooks.Parameters.AddWithValue("@UserID", useridu);
                            sterge_userbooks.Parameters.AddWithValue("@BookID", bookidi);
                            sterge_userbooks.ExecuteNonQuery();
                            sterge_userbooks.Parameters.Clear();
                            //Scad numarl de carti disponibile pentru cartea imprumutat
                            //adaugCarti.Parameters.AddWithValue("@bookid", bookidi);
                            adaugCarti.Parameters.AddWithValue("@bookid", bookidi);
                            adaugCarti.ExecuteNonQuery();
                            adaugCarti.Parameters.Clear();
                        tranzactie.Commit();
                    catch (Exception ex)
                        tranzactie.Rollback();
                        MessageBox.Show(ex.Message);
                catch (Exception ex)
                    MessageBox.Show(ex.Message);
            public Imprumut()
                InitializeComponent();
                try
                    con.Open();
                catch (Exception ex)
                    MessageBox.Show(ex.Message);
                Completez_Combo_User();
                Completez_CheckList_Carti();
                Completez_CheckList_Cartires();
                //selecteaza_carti_utilizator();
                //  Initializez termenul din dateTimePicker la data de peste 15 zile fata de data sistemului
                termenul.Value = System.DateTime.Now.AddDays(15);
            private void imprumuta_Click(object sender, EventArgs e)
                Confirmare c = new Confirmare("Confirmati imprumutul?");
                DialogResult dr = c.ShowDialog();
                if (dr == DialogResult.Yes)
                    try
                        Inregistrez_imprumut_in_BD();
                        MessageBox.Show("Imprumutul a fost inregistrat");
                        //Dupa inregistrarea imprumutului o parte din carti nu mai sunt disponibile pentru imprumut
                        //Reincarc in CheckList cu Carti noua lista cu carti ramase dupa imprumut
                        //Pentru asta "resetez" datele din dataTable cartiT (sursa pentru carti.DataSource)
                        CartiTabel.Clear();
                        adaptCarti.Fill(CartiTabel);
                        CartiImprumutateTabel.Clear();
                        adaptCartiImprumutate.Fill(CartiImprumutateTabel);
                    catch (Exception ex)
                        MessageBox.Show(ex.Message);
                if (dr == DialogResult.No)
                    MessageBox.Show("Imprumutul NU a fost inregistrat");
                    imp.ClearSelected();
                    //deselecteaza cartea selectat
                    foreach (int i in imp.CheckedIndices)
                        imp.SetItemChecked(i, false);
                    //debifeaza cartile bifate
                //if (imp.CheckedItems.Count > 0)
                //    //res.Items.Clear();
                //    foreach (string str in imp.CheckedItems)
                //        res.Items.Add(str);//adauga in partea cealalta, imprumuta
                //    while (imp.CheckedItems.Count > 0)
                //        imp.Items.Remove(imp.CheckedItems[0]);
            private void restituie_Click(object sender, EventArgs e)
                Confirmare r = new Confirmare("Confirmati restituirea?");
                DialogResult dr = r.ShowDialog();
                if (dr == DialogResult.Yes)
                    try
                        Inregistrez_restituire_in_BD();
                        MessageBox.Show("Restituirea a fost inregistrata");
                        //Dupa inregistrarea imprumutului o parte din carti nu mai sunt disponibile pentru imprumut
                        //Reincarc in CheckList cu Carti noua lista cu carti ramase dupa imprumut
                        //Pentru asta "resetez" datele din dataTable cartiT (sursa pentru carti.DataSource)
                        CartiTabel.Clear();
                        adaptCarti.Fill(CartiTabel);
                        CartiImprumutateTabel.Clear();
                        adaptCartiImprumutate.Fill(CartiImprumutateTabel);
                    catch (Exception ex)
                        MessageBox.Show(ex.Message);
                if (dr == DialogResult.No)
                    MessageBox.Show("Restituirea NU a fost inregistrata");
                    res.ClearSelected();
                    //deselecteaza cartea selectat
                    foreach (int i in imp.CheckedIndices)
                        res.SetItemChecked(i, false);
                    //debifeaza cartile bifate
                if (res.CheckedItems.Count > 0)
                    foreach (string str in res.CheckedItems)
                        imp.Items.Add(str);
                    while (res.CheckedItems.Count > 0)
                        res.Items.Remove(res.CheckedItems[0]);
            private void button2_Click(object sender, EventArgs e)
                con.Close();
                this.Close();
            //private void selecteaza_carti_utilizator()
            //    res.Items.Clear();
            //    MySqlCommand selectcart = new MySqlCommand("select title from books,userbooks where userbooks.userid='" + user.SelectedValue.ToString() + "' and userbooks.bookid=books.bookid", con);
            //    MySqlDataReader reader = selectcart.ExecuteReader();
            //    try
            //        while(reader.Read())
            //            res.Items.Add(reader["title"]);
            //    catch(Exception ex)
            //        MessageBox.Show(ex.Message);
            //    finally
            //        reader.Close();

    Hello Vincenzzo,
    This issue seems to be a window form UI implemented related issue, for this i suggest that you could ask it to the windows form forum:
    http://social.msdn.microsoft.com/Forums/windows/en-US/home?forum=winforms
    The current forum you posted to is used to discuss and ask questions about .NET Framework Base Classes (BCL) such as Collections, I/O, Regigistry, Globalization, Reflection.
    Regards.
    We are trying to better understand customer views on social support experience, so your participation in this interview project would be greatly appreciated if you have time. Thanks for helping make community forums a great place.
    Click
    HERE to participate the survey.

Maybe you are looking for