New Version of SalesBuilder using LiveCycle Data Services

I have often felt that we needed a more real-life/complex sample application to adequately demonstrate LiveCycle Data Services, and specifically the Data Management Service. So, I wrote a new version of Salesbuilder that uses LCDS to persist data at the server side. “Salesbuilder LCDS” demonstrates advanced LCDS features such as associations, lazy loading, etc.

This application will also be packaged as a sample in the next version of LiveCycle Data Services currently in private beta.

Here is a quick look at the destinations and associations used in the application:

<destination id="account">
    <adapter ref="java-dao" />
    <properties>
        <source>com.salesbuilder.assembler.AccountAssembler</source>
        <scope>application</scope>
        <metadata>
            <identity property="accountId" undefined-value="0"/>
            <many-to-one property="salesRep" destination="sales-rep" lazy="true"/>
            <many-to-one property="industry" destination="industry" lazy="true"/>
            <many-to-one property="category" destination="account-category" lazy="true"/>
            <many-to-one property="state" destination="state" lazy="true"/>
        </metadata>
    </properties>
</destination>

<destination id="contact">
    <adapter ref="java-dao" />
    <properties>
        <source>com.salesbuilder.assembler.ContactAssembler</source>
        <scope>application</scope>
        <metadata>
            <identity property="contactId" undefined-value="0"/>
            <many-to-one property="account" destination="account" lazy="true"/>
            <many-to-one property="manager" destination="contact" lazy="true"/>
            <many-to-one property="salesRep" destination="sales-rep" lazy="true"/>
        </metadata>
    </properties>
</destination>

<destination id="opportunity">
    <adapter ref="java-dao" />
    <properties>
        <source>com.salesbuilder.assembler.OpportunityAssembler</source>
        <scope>application</scope>
        <metadata>
            <identity property="opportunityId" undefined-value="0"/>
            <many-to-one property="account" destination="account" lazy="true"/>
            <many-to-one property="salesRep" destination="sales-rep" lazy="true"/>
        </metadata>
    </properties>
</destination>

<destination id="industry">
    <adapter ref="java-dao" />
    <properties>
        <source>com.salesbuilder.assembler.IndustryAssembler</source>
        <scope>application</scope>
        <metadata>
            <identity property="industryId" undefined-value="0"/>
        </metadata>
    </properties>
</destination>

<destination id="sales-rep">
    <adapter ref="java-dao" />
    <properties>
        <source>com.salesbuilder.assembler.SalesRepAssembler</source>
        <scope>application</scope>
        <metadata>
            <identity property="salesRepId" undefined-value="0"/>
        </metadata>
    </properties>
</destination>

<destination id="account-category">
    <adapter ref="java-dao" />
    <properties>
        <source>com.salesbuilder.assembler.AccountCategoryAssembler</source>
        <scope>application</scope>
        <metadata>
            <identity property="categoryId" undefined-value="0"/>
        </metadata>
    </properties>
</destination>

<destination id="state">
    <adapter ref="java-dao" />
    <properties>
        <source>com.salesbuilder.assembler.StateAssembler</source>
        <scope>application</scope>
        <metadata>
            <identity property="stateId"/>
        </metadata>
    </properties>
</destination>

Installation instructions:

Prerequisite: You need to have LiveCycle Data Services installed on your system before executing the steps below.

  1. Download salesbuilderlcds.zip
  2. Unzip salesbuilderlcds.zip in /salesbuilderlcds

  3. Copy the content /salesbuilderlcds/webapp/WEB-INF/classes to the WEB-INF/classes directory of your web application
  4. Add the destinations defined in /salesbuilderlcds/webapp/WEB-INF/flex/data-management-config.xml to the data-management-config.xml file of your web application
  5. Start the salesbuilder database
    1. Open a command prompt and go to /salesbuilderlcds/db
    2. Run startdb.bat (Windows) or startdb.sh (Unix-based systems)
  6. Start your application server
  7. Double-click /salesbuilderlcds/salesbuilderlcds.air to install the air application
  8. Run the application

Configuration Note:

By default, the application tries to connect to the localhost server using the RTMP protocol on port 2037. If your server configuration is different, edit config.xml in the salesbuilder installation directory (“Program Files\Salesbuilder LCDS” on Windows).

If you are not familiar with the Salesbuilder application, here is a quick walkthrough:

Sales Pipeline
The sales pipeline features many “direct manipulation” options:

  1. Grab the background of the chart with your mouse and scroll it left and write to navigate along the time axis.
  2. Grab a vertical grid line, and move it left and right to zoom-out/zoom-in.
  3. To modify your pipeline directly, grab a bubble with your mouse and move it up and down or left and right to adjust the probability and the expected closing date respectively. The projected revenue is automatically updated in the chart title. When you release the mouse button, the opportunity is automatically updated (probability and close date) in the database.
  4. You can also double click a bubble to open a details view for the opportunity.

Search and Summary Screens

  1. Type a few letters in the search box (upper right corner): matching accounts, contacts, and opportunities appear.
  2. Use the arrow keys to navigate in the search results popup.
  3. Use the Enter key to open the selected item.
  4. Alternatively, you can also open the summary screens (“Accounts”, “Contacts”, and “Opportunities” buttons in the menu bar), and open individual items from there.

Working with Data

  1. Open the “Alpha Corp” account.
  2. Make some changes to the Alpha Corp data (for example, change the phone number), and click “Save””.
  3. In the Contacts view of the Alpha Corp tab, you can grab an org chart item with your mouse and move the org chart around.
  4. To open the details view for a contact, either double-click an org chart item or click the Grid button (lower left corner) and double-click a contact in the datagrid.
  5. Add a contact by clicking “Quick Contact”. Make sure you select a manager, click save and notice that the org chart is updated automatically.
  6. Continue to add and modify accounts, contacts, and opportunities. The data is persisted using the Data Management Service.

Native drag-and-drop

  1. Click the “Opportunities” menu button.
  2. Drag the dashboard title on the desktop: the chart is saved as a JPG on the desktop. Note: it can take a few seconds before you actually see the drag icon.
  3. Open a Word document, drag the dashboard title again, and, this time, drop it directly in the Word document.
  4. Select some rows in the datagrid, and, without releasing the mouse button, drag the selected rows and drop them on the desktop. The rows are saved as an Excel document on the desktop.
  5. Double-click the Excel document to open the spreadsheet.
  6. Drag some rows from the Datagrid again, and, this time, drop them directly somewhere in the Excel spreadsheet.

  • Dan Nelson

    What version of AIR is required for your application? I keep getting the message “This application requires a version of the Adobe Integrated Runtime (AIR) which is no longer supported. Please contact the application author for an updated version”.

  • Pingback: Vinny Carpenter’s blog - » Daily del.icio.us for February 17th through February 22nd()

  • Zdenek Mikan

    I like this sample very much. Is there any sample demonstrating the opposite destination association – one-to-many?

    To Dan Nelson: Try to make a new application with the name salesbuilderlcds and use the new file salesbuilderlcds-app.xml from this new application.

  • Nikki

    I keep getting the same error as Dan Nelson (wrong version of AIR). i have tried importing the project into flex, but can’t seem to get it quite right and end up with loads of errors.

    are there any other solutions to this?

  • Wim Vervoort

    Dear Christophe,

    This is very nice and awsome that it is open source…..But i just can’t get this right on lcds or blazeDS. Maybe a quick tutorial will help us all out! I want to convert this to a web application…..thanks already!

    Greetzzz,

    Wim Vervoort

  • Marc Truitt

    Does it require livecycle es or livecycle enterprise?

  • I like this sample very much. Is there any sample demonstrating the opposite destination association – one-to-many?

  • en son ve en güzel araba oyunları, araba yarışı, araba yarışı oyunu, araba yarışları, en güzel araba yarışı oyunu,en hızlı araba yarışı, en son araba yarışı oyunlarını bulabileceginiz güzel bir site.Araba oyunları ve motor oyunlarının en son şekli ile zevke doyamayacaksınız

  • en son ve en güzel araba oyunlari bulabileceginiz güzel bir site. Araba oyunları ve motor oyunlarının en son şekli ile zevke doyamayacaksınız

  • butun sporoyunlarini bulabileceginiz zevkle futbol basketbol ve her turlu sporoyunu bulabileceginiz mukemmel bir site

  • webcamoyunlari cizgifilmoyunlari savasoyunlari zekaoyunlari kızoyunlari boyamaoyunlari yarisoyunlari daha binlerce cocuk oyunu bulacagınız mukemmel bir site

  • cocuklar için her turlu boyama oyunu ve makyaj oyunlarini bulabileceginiz guzel bir site

  • en son ve en güzel araba oyunları, araba yarışı, araba yarışı oyunu, araba yarışları, en güzel araba yarışı oyunu,en hızlı araba yarışı, en son araba yarışı oyunlarını bulabileceginiz güzel bir site.Araba oyunları ve motor oyunlarının en son şekli ile zevke doyamayacaksınız yarıs ve savasoyunlarini bir arada oynayabileceginiz mukemmel bir site

  • her turlu online flash oyunlari bedava oynayabilecegınız super bir site

  • Pingback: homeowners insurance for mobile homes()

  • Pingback: earthquake insurance()

  • Pingback: Specifying an endpoint for a RemoteObject destination at runtime « FLEXing My Muscle()

  • Your commend is very good.thanks

  • —Men’s Watches—

    At yesreplica, we carry only highest quality Rolex watch replicas. Unlike some of the lower budget fake Rolex watches out there, the reproductions at yesreplica capture every little detail of the original timepiece. Our Rolex Submariner replicas feature classic, simple faces that are always in fashion. The Rolex Daytona Chronograph replicas on our site have amazingly detailed chrono registers that make very accurate time measurements. The Rolex Date Just reproductions at yesreplica all come with a useful date indicator that is as chic as it is functional. Put simply, we are your one stop shop for fine Rolex replicas.

    Every one of our imitation watches is meticulously crafted from the finest materials, and our selection of designer imposters is vast. Our replica Corum watches are colorful and impressive. If you’re searching for a luxurious timepiece, our Chanel replica watches will not disappoint. If you enjoy ritzy sophistication, then be sure to browse our collection of replica Cartier watches. The timeless, sheer elegance of our replica Patek Philippe watches is also certain to turn some heads.

    We have watch replicas that will fit any style or wardrobe. The Swiss Panerai replicas on our site have a distinctively classic, art deco look. The same is true for our variety of replica Mont Blanc watches. If you want an intricately detailed timepiece, then consider a Breitling replica watch. If you prefer a more innovative style, our Tag Heuer replica watches are sleek items that radiate a hip exuberance and youthful demeanor.

    With a wide selection, a trustworthy reputation and quality that you have to see to believe, yesreplica is your final destination for affordable designer watch replicas. We believe that once you explore our complete catalog of replicas, you’re sure to find a high quality timepiece that you’ll immediately fall in love with.

  • This website just for wholesale clients, All bags are all wholesale prices, triple A quality
    Designer replica inspired handbags gives you the opportunity to be updated of the latest Fashion Trends in Purses and fashion handbags. Check out the great Styles and Designs at wholesale-dropshipping. Our Collection of fake Louis Vuitton handbags,fake chanel Handbags, Gucci purses, Fendi Replica Handbags, Balenciaga Replica Handbags, Christian Dior Replica Handbags,burberry handbags, Chloe Replica Handbags are one of the Best Collections we display as compared to other Replica Handbags Online Websites.Replica Handbags sold to you from our Store are Charming, Beautiful, Glamorous Japanese Replica Handbags Collections like fake Louis Vuitton and wholesale chanels Replica Handbags.Our Collection of cheap louis vuitton Handbags and Chanel Handbags will never disappoint you. We would like you to checkout our replica chanel handbags Collection which is one of the largest selling Brands throughout the planet.

    Our Designer replicas are the highest quality, most authentic looking handbags you will ever see! Don’t be fooled by cheap falling apart replicas made with the wrong materials with the incorrect size. We have just what you are looking for without having to spend thousands for an original bag which will look exactly as our replica handbags. Our replicas have every single detail an Original bag would actually have, so stop your search be convinced we are the best site with superb Customer service and best Replicas you will ever see !
    Our Replica designer handbags are becoming more and more popular as women around the world try to achieve the latest fashion look without paying thousands of dollars for one bag. And as replica bags gain popularity there are more and more online businesses selling designer replica purses and bags . This means that you need to know that you can trust the online retailer that you’re buying from. wholesale-dropshipping is at the top of the list when it comes to selling authentic replica designer handbags.
    Some of the things that you can count on when you shop at Replica include:
    Authentic replicas.Great attention is paid to detailing to ensure that your handbag looks as good as the real thing. This includes the materials that are used, exact duplication of stitching, and correct placement of the designer logo.
    Exactness to designer specification of fashion handbags and purses. Each handbag looks like an exact replica of the original design. Superior customer service and satisfaction. If you’re not happy with your purchase, Knockoff Bag isn’t happy and will do what it takes to earn your satisfaction A continuously changing selection of replica handbags.Great effort is taken to bring you the latest handbag and purse fashions.
    The handbag that you wear on your arm can make all the difference when it comes to your personal fashion look and styling. Replica handbags let you complete your fashion look without spending thousands of dollars. Not all women can afford the high prices that designers charge.Replica lets you master your fashion wardrobe while still staying within your budget.
    It’s easy to shop online since there are so many online retailers vying for your money.But you need a fashion site that you can trust to bring you the best designer replica handbags at honest prices.You’ll find that and more at our Online Shopping.The website is packed with all the information that you need to make shopping for a handbag an enjoyable experience.
    Featured at Replica are handbags and purses by such famous designers as:
    Gucci ,Fendi ,Hermes ,fake chanel ,Louis Vuitton, Prada, Christian Dior ,Balenciaga , Chloe, Mulberry, Marc Jacobs, Miu Miu and many more brands.
    No matter what designer you choose as your favourite there are several fashion handbags and purses featured. You can choose from a recently released handbag style or one that was introduced a few months or years ago. Many handbags never lose their appeal with women around the world and Replica strives to make these favourites available to you. Release dates are clearly marked for each handbag as well as a detailed description about what the bag looks like and what it is made of. Accompanying photos let you see exactly what you’re getting so that there are no surprises.

  • En güzel araba oyunlarını bu sitede ücretsiz olarak oynayabilir, heyecanın doruklarına çıkabilirsiniz.

  • Pingback: bet betting gamble gambling()

  • İddialıyız, super oyunları araba oyunları sitemizde üye olmadan, oynayabilirsiniz. Üstelik sitemiz sürekli yeni oyunlarla geliştirilmektedir.
    Thank you.

  • Nice jop, thank you…

  • Great wabsite..thanks a lot…

  • great website…congrats…

  • free online flash car game

  • Pingback: quick auto insurance quote online()

  • video,belgesel,islami video,islami müzikler,yalan haber,futbol görüntüleri,her türlü video izle,video izle,ücretsiz video,video siteleri,video yükle,video indir,video download
    thanks :)

  • Pingback: boat insurance rate()

  • Pingback: insurance life online quote()

  • tüm yarış oyunları

  • ehliyet sınav sonuçları

  • Your commend is very good.thanks

  • Pingback: flood insurance rate map louisiana()

  • Pingback: florida homeowners insurance replacement()

  • Pingback: commercial building insurance()

  • Pingback: nebraska health insurance quote()

  • good website,thanks,savaş oyunu,savaş oyunları

  • Pingback: blind raise()

  • I have some interest in LDCS, but I am curious about complex transactions. I mean between queues and databases. Also between the production database and the reporting database, and LDCS handle these very common scenarios.

  • Hi Christophe,

    First of all: VERY impressive work. Until now, we were using WebORB with .NET, but we’re migrating to Java so LCDS seems the logical option. I just have one question to you, where I’m a bit confused about:
    When developing an AIR application, your ChannelManager.as manages the RTMP- and AMF channels (loading it from a config.xml on the client-side). Now when I want to run the application as a Flex application, I can only get it to work if I specify the services-config.xml in the compile settings (in my case “-locale en_US -services “/Users/jonaswindey/Development/Config XML/services-config.xml”)

    In this config, I include the messaging-config.xml and data-management-config.xml, where I have defined the destinations as in your example.

    I don’t understand why in an AIR application, the clients eems to get the data-management-config from the webserver, whereas in a Flex application, it depends on a local data-management-config.

    Do you have an explanation for this? Thanks for your time.

  • I didn’t get a chance of trying IE7, but I think I know what is wrong. When I call the index file directly, the visitor comment works great. I’m calling the program in an iframe on one of my webpages and that is when it doesn’t work. I would really like it to work from a webpage. Any ideas on this? Thanks.

  • Try to make a new application with the name salesbuilderlcds and use the new file salesbuilderlcds-app.xml from this new application.

  • I’m calling the program in an iframe on one of my webpages and that is when it doesn’t work. I would really like it to work from a webpage.

  • I don’t understand why in an AIR application, the clients eems to get the data-management-config from the webserver, whereas in a Flex application, it depends on a local data-management-config.

  • When developing an AIR application, your ChannelManager.as manages the rtmp- and amf channels (loading it from a config.xml on the client-side). Now when I want to run the application as a Flex application

  • I would really like it to work from a webpage. Any ideas on this? Thanks.

  • I keep getting the same error as Dan Nelson (wrong version of AIR). i have tried importing the project into flex, but can’t seem to get it quite right and end up with loads of errors.

    are there any other solutions to this?

  • banally Liverpool fidget …

  • I would love to hear more about this topic.

  • thank site your nice post

  • goon nice thank you

  • thanks

  • free online flash car game altın cumhuriyet çeyrek 22 ayar bilezik dolar euro

  • sayısalloto süper loto onnumara milli piyango çekiliş sonuçları

  • cocuklar için her turlu boyama oyunu ve makyaj oyunlarini bulabileceginiz guzel bir site

  • cocuklar için her turlu boyama oyunu ve makyaj oyunlarini bulabileceginiz guzel bir site

  • Good on your

  • tesekkurler

  • I keep getting the same error as Dan Nelson (wrong version of AIR). i have tried importing the project into flex, but can’t seem to get it quite right and end up with loads of error :)

  • thanks !! very helpful plugin

  • kız oyunları, kız oyunları oyna, kız oyunu oyna, kız oyunu, giydirme oyunları, kızoyunlarıoyna, güzel oyunlar

  • giydirme oyunları, giydirme, giysi giydirme oyunları, puanlı giysi giydirme, makyaj oyunları, komik oyunlar

  • zeka oyunları, okul oyunları, eğitici oyunlar, matematik oyunları, bebek oyunları, komik oyunlar, fark oyunu, beceri oyunları

  • tank oyunları, ben 10, ben10 oyunları, ben ten, benten, uçak oyunları, macera, spor, futbol oyunları

  • dizi izle, filim izle, fragman izle, müzik dinle, şarkı sözü

  • saç şekilleri, saç modelleri, saç stilleri

  • Dont know but tha -ks alot

  • Thank for the cool and usefull posting. Looking to see more in the future.

  • The mission of The Thank You Foundation is to show appreciation and express
    gratitude for members of the U.S. Military both past and present
    wedding songs زفات – موقع زفات – زفات بدون موسيقى – زفات بالاسماء – زفات راشد الماجد – زفات حزين الجسمي

  • Welcome to our website,http://www.progiftstore.com, we are professional watch maker who can provide you with a variety of replica watches, these replica watches are high quality and are sold at a cheap price.

  • en güzel oyunlar, güzel oyunlar, en yeni güzel oyunlar, puanlı güzel oyunlar, yeni en güzel oyunlar, güzel oyunları, güzel oyun oyna

  • provide you with a variety of replica watches, these replica watches are high quality and are sold at a cheap price.

  • The mission of The Thank You

  • Looking to see more in the future.

  • thanks !! very helpful

  • The information has been a huge help, has enabled me to explain a complex idea to my friends.

    wedding bomboniere

  • Cheers, great content and valuable. I have been looking for something like this and now have the resource to use.

    stubby holders

  • Thank for the cool and usefull posting. Looking to see more in the future.

  • really very informative post, thanks for sharing this great info

  • provide you with a variety of replica watches, these replica watches are high quality and are sold at a cheap price.

  • enjoyed the read as always really good comments.

  • really very informative post.

  • Thanks for the hints.

  • thanks very well

  • Nice! they will help a lot! thanks!

  • Thanks for informative post.

  • Great post, please keep up this great work

  • thanks! very useful post. :-)

  • thanks very well

  • ekle cnm ekle

  • evet ekle cnm

  • Hi,
    Thank you for this post. It’s a very helpful.
    Thank you, Please clic on it.

    Locksmiths Barnes

  • Benefit Perfume
    ‘s Love Your Look makeup to match your lifestyle collection takes the guesswork out of gorgeous. Choose from three unique looks: The Lana light neutral shades, The Gabbi medium neutral shades, and The Betty deep neutral shades. Go for a “lifestyle look” or, be daring and mix and match! All of the beautiful shades for lips, eyes, and cheeks will get you the look you want! You’ll love the hidden surprise, a “beauty fortune” inside every package.

  • I have also needed a more real-life/complex sample application to adequately demonstrate LiveCycle Data Services, and specifically the Data Management Service. Great work in producing this.

  • Thanks for the great shares.

  • thanks! very useful post. :-) admin thanks

  • süper bir blog fakat bir eksiklik farkettim gibi inceleyeceğim teşekkürler

  • thankyou admin good site good blog

  • thaks good blog

  • Nice! they will help a lot! thanks!

  • I am genuinely assured they will understand a lot of fresh goods down below as compared to any individual different!

  • thank you for kafa

  • thank you were much

  • thank you why nice to met

  • This post is a practical explanation of how to crack phpBB2 easily. You need to know some basic programming but 90% of the code is written for you in free software.

  • After you have it all working you should have a good success rate and it will be unlikely to lock you out. Find this section of code:

  • Possibly a version of php and maybe apache web server on your desktop PC. I used php to automate the downloading of the captcha because it’s very good at interpreting strings and downloading static web pages.

  • Awesome stuff!!

  • Awesome! Thanks, good!

  • You can visit our store for all our other models. Please contact us for you to design your own jersey. Please contact us for further information.
    .http://www.jonsunsport.com/futbol-takim-formalari.html

  • Merhabalar teşekkürlerimi sunarım thank you

  • William Delao

    Smash the Pig is a brand new slot that brings a new feel and spin to the casino slots genre. This slot game by Spielo is not one based on glitz, glamour, and the high life, which seems to be the common trend of the moment. Instead, it is a game that has agricultural roots, as it is based around life on the farmyard.

    Considering its odd premise, eyebrows have certainly been raised, with many questioning the legitimacy of this new game prior to release. Being as objective as possible, can this theme actually be made into a fun game? There is only one way to find out!

  • yuvaraj singh

    Thanks for sharing this informative content ,
    Leanpitch provides online training in Enterprise Agile coaching during this lockdown period everyone can use it wisely.
    Enterprise Agile coaching

css.php