Alfresco Summit 2013 Presentation by Jared Ottley and Will Abson. Discuss how the Alfresco for Salesforce Integration works; How to get and install the integration; Challenges; ideas for for future releases.
If you're looking to interact with your Salesforce data from other systems, but need something more complex than what's offered by the native Rest API, look no further than REST Apex. Join us as we take a look at the basics of defining your own custom APIs using Apex REST. The session will be packed with tips and tricks, and we'll cover everything involved in defining your first Apex REST service.
Today a number of organizations are working with both salesforce.com and SharePoint. There are several integration points between the two products to allow the seamless use of both technologies and increase end user experience.
While Salesforce.com might be best for customer related information, SharePoint is suitable for unstructured customer intelligence types of information.
Learn from the experts at Netwoven who have been working with both technologies and have been busy integrating them for customers.
Presentation Preview:
• Review of scenarios for integration between salesforce.com and SharePoint 2013
• Registration process of users between salesforce and SharePoint
• Integration of leads, contacts and opportunities
• Review of Chatter integration with SharePoint search
Alfresco has provided an implementation of CMIS ever since the first draft of the specification was announced. It is the CMIS repository that all others are compared to. In this session, you'll learn how Alfresco maps to the CMIS domain model and explore how CMIS services such as query behave through live examples. You'll see how easy it is to build applications against CMIS including the use of unique Alfresco features such as Aspects.
If you're looking to interact with your Salesforce data from other systems, but need something more complex than what's offered by the native Rest API, look no further than REST Apex. Join us as we take a look at the basics of defining your own custom APIs using Apex REST. The session will be packed with tips and tricks, and we'll cover everything involved in defining your first Apex REST service.
Today a number of organizations are working with both salesforce.com and SharePoint. There are several integration points between the two products to allow the seamless use of both technologies and increase end user experience.
While Salesforce.com might be best for customer related information, SharePoint is suitable for unstructured customer intelligence types of information.
Learn from the experts at Netwoven who have been working with both technologies and have been busy integrating them for customers.
Presentation Preview:
• Review of scenarios for integration between salesforce.com and SharePoint 2013
• Registration process of users between salesforce and SharePoint
• Integration of leads, contacts and opportunities
• Review of Chatter integration with SharePoint search
Alfresco has provided an implementation of CMIS ever since the first draft of the specification was announced. It is the CMIS repository that all others are compared to. In this session, you'll learn how Alfresco maps to the CMIS domain model and explore how CMIS services such as query behave through live examples. You'll see how easy it is to build applications against CMIS including the use of unique Alfresco features such as Aspects.
Salesforce Coding techniques that keep your admins happy (DF13)Roy Gilad
Do you want to spend more time developing new and exciting features, and less time maintaining existing code when a field is added or an error message needs to change? Then keep yourself and your Administrator happy by coding to anticipate these changes using Custom Settings, Field Sets, and Labels.
Source code is available at:
https://gist.github.com/RoyGilad
This presentation was presented by Roy Gilad at Dreamforce 2013
Learn how Alfresco, Jive, and SolutionSet are collaborating to deliver an Alfresco-Jive connector that brings enterprise-class repository functionality to Jive content, and allows Alfresco content to behave as native Jive content.
Why Lightning Web Component?
HTML5 Vanilla Components
4 Pillars of Web Component
How templating works in Web components
Lightning Web Components
Hello Word Components
Call Apex From LWC
Communicate with Aura Components
One of the major changes in SharePoint 2013 is the introduction of apps. Apps for both SharePoint and Office provide a new model for developing, packaging and deploying custom solution for SharePoint.
This brief presentation will introduce the main aspects of the apps model introduced form Microsoft to addres custom features to SharePoint both on-premises and online.
This is the workshop presentation material for the Lightning Components Hands-On Workshop (HOW) being presented at Dreamforce 2015 in the DevZone. This content pairs with the Lightning Components Trailhead project live in Trailhead as of Dreamforce 2015.
Talk about Salesforce REST API: how to perform query, search or single-record CRUD operations; how to retrieve versions, list of custom object and object metadata and field metadata and presentation of demo page performing these requests
Deep dive into SharePoint 2013 hosted apps - Chris OBrienChris O'Brien
Covers key aspects of SharePoint 2013 apps, with a focus on SharePoint-hosted apps. Includes detail on app parts, using web parts within an app, configuring SSL, troubleshooting apps and possible reasons to move away from a SharePoint-hosted app to a cloud app. Also covers "high-privilege" apps which provision to the host web.
This sessions if for everybody that always wanted to know about SharePoint development, but didn’t have anyone to ask, or didn’t have opportunity to try on their own. We’ll show how to start with SharePoint development, what API to use, when to use client API, is server side object model deprecated, how to setup development environment and more tips & tricks which are not usually mentioned.
Spring '16 Release Overview - Bilbao Feb 2016Peter Chittum
Slide presentation from my talk in Bilbao Spain. This was an overview of Salesforce major release Spring 16. Primary areas of focus were Lightning in Visualforce and the new Durable Generic Streaming API.
Have you been hacking some JavaScript to enable your users to do more, directly in the Chatter feed? Hack no more! in Winter '15 you can define, invoke, and debug Action Links in Force.com. If you are familiar with our REST APIs and Chatter, join the engineers who delivered this feature for a walkthrough of tools, code samples, and resources. You'll come away ready to create your own action links.Have you been hacking some JavaScript to enable your users to do more, directly in the Chatter feed? Hack no more! in Winter '15 you can define, invoke, and debug Action Links in Force.com. If you are familiar with our REST APIs and Chatter, join the engineers who delivered this feature for a walkthrough of tools, code samples, and resources. You'll come away ready to create your own action links.
Citrix Receiver provides access to hosted apps from today\'s most popular phones
Work from anywhere
Secure access to data
Device-intuitive navigation
Easy access to docs and data with Doc Finder feature
Optimized access to web-based apps using App Viewer
Transactional access
Approve budgets or orders
Access database
Update information
Urgent access
No PC available
Mobile connection only option
Quick access to webinars, animated content
ERP/CRM Integration Series: Integration Salesforce with AlfrescoZia Consulting
For many salespeople, the main source of frustration in the sales process comes from managing documents—particularly when it requires leaving their CRM to access an ECM system. Yet, for the enterprise, concerns around workflows and approvals, efficiencies, compliance, and reporting make an actual ECM system a requirement.
What if your salespeople could continue to work in their CRM system and still get the benefits of a modern, flexible ECM platform? Through our partnership with SeeUnity, Zia delivers a solution that integrates Salesforce with Alfresco to make that idea a reality—today. Join us and learn how you can make your documents searchable and shareable outside Salesforce, and how you benefit from advanced workflow with Activiti BPM. You’ll see how enterprise-class records management can be automatically applied, meeting corporate compliance and retention requirements.
We will demonstrate how to manage your Salesforce documents from creation to approval, with Zia solutions built on Alfresco ECM. In addition, we will discuss how to securely share documents with customers, partners, and other third-parties.
Salesforce Coding techniques that keep your admins happy (DF13)Roy Gilad
Do you want to spend more time developing new and exciting features, and less time maintaining existing code when a field is added or an error message needs to change? Then keep yourself and your Administrator happy by coding to anticipate these changes using Custom Settings, Field Sets, and Labels.
Source code is available at:
https://gist.github.com/RoyGilad
This presentation was presented by Roy Gilad at Dreamforce 2013
Learn how Alfresco, Jive, and SolutionSet are collaborating to deliver an Alfresco-Jive connector that brings enterprise-class repository functionality to Jive content, and allows Alfresco content to behave as native Jive content.
Why Lightning Web Component?
HTML5 Vanilla Components
4 Pillars of Web Component
How templating works in Web components
Lightning Web Components
Hello Word Components
Call Apex From LWC
Communicate with Aura Components
One of the major changes in SharePoint 2013 is the introduction of apps. Apps for both SharePoint and Office provide a new model for developing, packaging and deploying custom solution for SharePoint.
This brief presentation will introduce the main aspects of the apps model introduced form Microsoft to addres custom features to SharePoint both on-premises and online.
This is the workshop presentation material for the Lightning Components Hands-On Workshop (HOW) being presented at Dreamforce 2015 in the DevZone. This content pairs with the Lightning Components Trailhead project live in Trailhead as of Dreamforce 2015.
Talk about Salesforce REST API: how to perform query, search or single-record CRUD operations; how to retrieve versions, list of custom object and object metadata and field metadata and presentation of demo page performing these requests
Deep dive into SharePoint 2013 hosted apps - Chris OBrienChris O'Brien
Covers key aspects of SharePoint 2013 apps, with a focus on SharePoint-hosted apps. Includes detail on app parts, using web parts within an app, configuring SSL, troubleshooting apps and possible reasons to move away from a SharePoint-hosted app to a cloud app. Also covers "high-privilege" apps which provision to the host web.
This sessions if for everybody that always wanted to know about SharePoint development, but didn’t have anyone to ask, or didn’t have opportunity to try on their own. We’ll show how to start with SharePoint development, what API to use, when to use client API, is server side object model deprecated, how to setup development environment and more tips & tricks which are not usually mentioned.
Spring '16 Release Overview - Bilbao Feb 2016Peter Chittum
Slide presentation from my talk in Bilbao Spain. This was an overview of Salesforce major release Spring 16. Primary areas of focus were Lightning in Visualforce and the new Durable Generic Streaming API.
Have you been hacking some JavaScript to enable your users to do more, directly in the Chatter feed? Hack no more! in Winter '15 you can define, invoke, and debug Action Links in Force.com. If you are familiar with our REST APIs and Chatter, join the engineers who delivered this feature for a walkthrough of tools, code samples, and resources. You'll come away ready to create your own action links.Have you been hacking some JavaScript to enable your users to do more, directly in the Chatter feed? Hack no more! in Winter '15 you can define, invoke, and debug Action Links in Force.com. If you are familiar with our REST APIs and Chatter, join the engineers who delivered this feature for a walkthrough of tools, code samples, and resources. You'll come away ready to create your own action links.
Citrix Receiver provides access to hosted apps from today\'s most popular phones
Work from anywhere
Secure access to data
Device-intuitive navigation
Easy access to docs and data with Doc Finder feature
Optimized access to web-based apps using App Viewer
Transactional access
Approve budgets or orders
Access database
Update information
Urgent access
No PC available
Mobile connection only option
Quick access to webinars, animated content
ERP/CRM Integration Series: Integration Salesforce with AlfrescoZia Consulting
For many salespeople, the main source of frustration in the sales process comes from managing documents—particularly when it requires leaving their CRM to access an ECM system. Yet, for the enterprise, concerns around workflows and approvals, efficiencies, compliance, and reporting make an actual ECM system a requirement.
What if your salespeople could continue to work in their CRM system and still get the benefits of a modern, flexible ECM platform? Through our partnership with SeeUnity, Zia delivers a solution that integrates Salesforce with Alfresco to make that idea a reality—today. Join us and learn how you can make your documents searchable and shareable outside Salesforce, and how you benefit from advanced workflow with Activiti BPM. You’ll see how enterprise-class records management can be automatically applied, meeting corporate compliance and retention requirements.
We will demonstrate how to manage your Salesforce documents from creation to approval, with Zia solutions built on Alfresco ECM. In addition, we will discuss how to securely share documents with customers, partners, and other third-parties.
2.7 billion smartphones connections and 7.142 billion active mobile subscriptions; huge numbers right? With such a large number it is evident to affect our marketing styles and strategies. Let’s witness the impact and myriad mobile marketing stats and strategies, infographically!
Alfresco Summit 2014. Session: Bringing Alfresco to Google Glass. Google Glass is helping lead the revolution of how we interact with information both in capture and notification. There is a revolution coming on how users will interact and collaborate around content from wearables like Google Glass. This session will discuss what Google Glass provides. We will discuss how we can build on this platform to integrate with Alfresco by building a simple notification app. We will demonstrate uploading content to Alfresco from Google Glass and sending content to Glass.
Alfresco Summit. A proof of concept on how to XMPP (Messaging and Presence) Alfresco nodes. Via IM: Send notifications of changes, Comments on nodes are persisted to Alfresco, Comments added via web client are sent to subscribed users, Update Content in Alfresco from IM Client file transfer, Download content from IM client
Dreamforce 2016 : Highlights, Hacks and RumorsAjeet Singh
If you are a Salesforce person then the epic four days of your life is just a month away. It’s four days of complete inspiration, learning, imagination, and innovation coupled with pure ecstasy. The countdown for DF’ 16 has already begun and I can’t hold myself back from the excitement of attending the most flamboyant event of Salesforce.
Ever in the world, were a mecca for the marketers, then Dreamforce would be it!!!
A conference as magnificent as contributing to over 226 million dollars to the local economy in just four short days has all the reasons to increase your adrenalin rush.
Dreamforce is a colossal event : highlights, hacks, rumors …do’s dont’s you will have it all but it’s worth every second you spend there. With more than 2000 sessions and myriad live solutions from the world’s largest cloud ecosystem, you will have the time of your life. I will be there waiting to see you and extend a hand for lifelong friendship, see you soon :)
Dreamforce is in the air[#Infographic] – http://www.algoworks.com/infographics/advantage-dreamforce-in-numbers/
According to Juniper Research
“Over 2 billion smartphone or tablet users will make some sort of mobile commerce transaction globally by the end of 2017.”
If that sounds like something, then you would be more thrilled to take a quick glance at the surging stats revolving around mobile and its impact on retail. Go ahead!!
Advantage Dreamforce: In Numbers | An InfographicAjeet Singh
Dreamforce is a colossal event. With thousands of sessions and myriad live solutions from the globe’s largest cloud ecosystem, Dreamforce will help you reap awesome benefits in various domains. Let’s have a look.
Mobile devices have conquered every single aspect of our lives over the years. 2016 proves to be a year of vital happenings in the mobile world, so let’s have a look!
Salesforce Security – An Encryption Guide For The ParanoidAjeet Singh
If you are using Salesforce, you would be having a lot of data stored in Salesforce objects. Some of it would be sensitive data, and some of it would even be sensitive enough that you don’t want anyone to look at it, like revenue related data. So the question is, is the data on your Salesforce implementation secure enough? How fastidious are you about your customer’s or company’s sensitive data and how to make sure that the data remains secure and be accessible to particular eyes necessarily?
Encrypting Data in Salesforce
Salesforce in general has very strict security protocols and standards so usually there is no need to additionally secure any data. But for some data there is nothing paranoid about taking extra precaution. More and more companies nowadays are taking the security of their user and financial data very seriously and to satisfy them Salesforce and third party Salesforce developers have provided users a number of ways to encrypt their data.
Salesforce Custom Field Encryption (Both Classic and Platform)
For those using Salesforce Developer, Enterprise, Performance, Unlimited, and Database.com editions, there is a way that they can encrypt data values. This is applicable to custom fields only.
Using Apex Crypto Class
Now if you are slightly more paranoid and you think that custom field encryption is not enough, you can leverage the APEX class’s properties for encrypting data at rest and in-transit. Apex classes are more granular level of encryption and requires significant know-how about Salesforce, Apex programming, and Salesforce customization. Therefore we recommend you to consult a Salesforce expert before using this method.
Third Party Encryption Services
The third method to encrypt your data is using third party encryption services. Google ‘Salesforce Encryption Services’ and you will find hundred such third party solutions. These services are, in almost every case, paid and requires a subscription licensed based fees. These services are mainly deployed as an added layer between data entry points and Salesforce, and can be used to both encrypt and authenticate data. Theoretically they should create some latency in data addition and retrieval, but in most practical cases the latency is negligible, provided the service is flawless of course.
According to science, Moore’s Law states that as the components get smaller they gain efficiency and the power increases. The magic of small things can be extremely impactful. The cell in our hands just goes about proving this law true again and again.
Strategies To Develop Location Aware Hyperlocal Android AppsAjeet Singh
Have you ever wondered if it was just simple to implement GPS tracking functionality in your Android Application? Ever wondered how to use the offline GPS functionality in your location aware android applications? Facing challenges of balancing between
- Accuracy?
- Scalability?
- Power consumption?
- Acquisition speed when acquiring a location?
Obtaining an accurate user location on a mobile device can be difficult. If we speak broadly, there are three concerns that will challenge you the most:
1. Multiple location sources: There is more than one provider from which location is acquired (GPS, WI-FI and Cell-ID) and they all vary very much on grounds of accuracy, power consumption and speed.
2. User movement: The movement of user influences the location hence location data must be refreshed at a reasonable time interval.
3. Varying accuracy: Different providers offer different location estimates and definitely there will loss in accuracy. It also validates that the location fetched from the newest provider might be significantly less accurate than the estimation from an older provider.
Optimizing your choice could make a huge difference in good or poor user experience. Let’s have a view of user permissions.
A – User Permissions
B- Location Strategies
Some unique and most amazing location aware using Offline GPS functionality are creating good buzz in the Mobile Application Market. Here are some cool Offline GPS Android Applications like OsmAnd Maps, MapFactor, Navfree, GoogleMaps, HERE Maps, CoPilot GPS – Plan & many more in queue.
An approach for linking Alfresco to external (non-Alfresco) applications, where Alfresco is not the core platform, but other applications are interested in Alfresco application events.
Chris O'Brien - Modern SharePoint development: techniques for moving code off...Chris O'Brien
Covers some key techniques and references for "cloud-friendly" SharePoint development (i.e. suitable for Office 365, or perhaps on-premises SharePoint projects which want to stay cloud compatible or benefit from greater isolation from SharePoint).
Includes detailed coverage on - Remote Event Receivers in Azure, "PowerShell + CSOM" scripts, and Microsoft's AMS samples.
In the past, developers have chosen to develop their own content-centric apps from scratch or by leveraging low level libraries. A content repository like Alfresco can save time and cost. Even if you don't choose Alfresco, you should still consider leveraging a standard API like CMIS as much as possible.
Building Content-Rich Java Apps in the Cloud with the Alfresco APIJeff Potts
This presentation, originally delivered at JavaOne on October 2, 2012, talks about why you should use Alfresco instead of rolling your own content repository and discusses the new public Alfresco API for writing content apps that persist content to Alfresco in the Cloud.
Our API Evolution: From Metadata to Tooling API for Building Incredible AppsDreamforce
Exposing org metadata is incredibly powerful if successfully harnessed. Hear from Salesforce's Exposing org metadata is incredibly powerful if successfully harnessed. Hear from Salesforce's Federico Recio on the evolution of Salesforce?s APIs as well as an introduction to Metadata Catalog with Peter Wisnovsky. Let?s discuss how Salesforce Object Manager utilizes our newest API and how you can create incredible user experiences in your own apps. Watch the video now: https://www.youtube.com/watch?v=pPNOtxVd7ow
Extremely high-level overview of some of the major components and sub-systems of the Alfresco platform for content management. Delivered to the Red Hat Summit/JBoss World Campground session on 5/4/2011.
SharePoint + Xamarin for Visual Studio provides ability to build great business mobile apps using C# as the main programming language. It can build apps for iOS, Android, Kindle Fire and more. Apps are built with standard, native user interface controls. Apps not only look the way the end user expects, they behave that way too. Xamarin Studio provides integration with Visual Studio, IDE for Mac as well as Windows IDE for Android development. Apps are build using familiar language(C#) and namespace base on .Net framework which we all have come to love. Your users will love using Apps that target to their personal device, which intern will increase productivity and business value.
Transcript: Selling digital books in 2024: Insights from industry leaders - T...BookNet Canada
The publishing industry has been selling digital audiobooks and ebooks for over a decade and has found its groove. What’s changed? What has stayed the same? Where do we go from here? Join a group of leading sales peers from across the industry for a conversation about the lessons learned since the popularization of digital books, best practices, digital book supply chain management, and more.
Link to video recording: https://bnctechforum.ca/sessions/selling-digital-books-in-2024-insights-from-industry-leaders/
Presented by BookNet Canada on May 28, 2024, with support from the Department of Canadian Heritage.
Accelerate your Kubernetes clusters with Varnish CachingThijs Feryn
A presentation about the usage and availability of Varnish on Kubernetes. This talk explores the capabilities of Varnish caching and shows how to use the Varnish Helm chart to deploy it to Kubernetes.
This presentation was delivered at K8SUG Singapore. See https://feryn.eu/presentations/accelerate-your-kubernetes-clusters-with-varnish-caching-k8sug-singapore-28-2024 for more details.
Smart TV Buyer Insights Survey 2024 by 91mobiles.pdf91mobiles
91mobiles recently conducted a Smart TV Buyer Insights Survey in which we asked over 3,000 respondents about the TV they own, aspects they look at on a new TV, and their TV buying preferences.
Securing your Kubernetes cluster_ a step-by-step guide to success !KatiaHIMEUR1
Today, after several years of existence, an extremely active community and an ultra-dynamic ecosystem, Kubernetes has established itself as the de facto standard in container orchestration. Thanks to a wide range of managed services, it has never been so easy to set up a ready-to-use Kubernetes cluster.
However, this ease of use means that the subject of security in Kubernetes is often left for later, or even neglected. This exposes companies to significant risks.
In this talk, I'll show you step-by-step how to secure your Kubernetes cluster for greater peace of mind and reliability.
Software Delivery At the Speed of AI: Inflectra Invests In AI-Powered QualityInflectra
In this insightful webinar, Inflectra explores how artificial intelligence (AI) is transforming software development and testing. Discover how AI-powered tools are revolutionizing every stage of the software development lifecycle (SDLC), from design and prototyping to testing, deployment, and monitoring.
Learn about:
• The Future of Testing: How AI is shifting testing towards verification, analysis, and higher-level skills, while reducing repetitive tasks.
• Test Automation: How AI-powered test case generation, optimization, and self-healing tests are making testing more efficient and effective.
• Visual Testing: Explore the emerging capabilities of AI in visual testing and how it's set to revolutionize UI verification.
• Inflectra's AI Solutions: See demonstrations of Inflectra's cutting-edge AI tools like the ChatGPT plugin and Azure Open AI platform, designed to streamline your testing process.
Whether you're a developer, tester, or QA professional, this webinar will give you valuable insights into how AI is shaping the future of software delivery.
Encryption in Microsoft 365 - ExpertsLive Netherlands 2024Albert Hoitingh
In this session I delve into the encryption technology used in Microsoft 365 and Microsoft Purview. Including the concepts of Customer Key and Double Key Encryption.
Neuro-symbolic is not enough, we need neuro-*semantic*Frank van Harmelen
Neuro-symbolic (NeSy) AI is on the rise. However, simply machine learning on just any symbolic structure is not sufficient to really harvest the gains of NeSy. These will only be gained when the symbolic structures have an actual semantics. I give an operational definition of semantics as “predictable inference”.
All of this illustrated with link prediction over knowledge graphs, but the argument is general.
UiPath Test Automation using UiPath Test Suite series, part 3DianaGray10
Welcome to UiPath Test Automation using UiPath Test Suite series part 3. In this session, we will cover desktop automation along with UI automation.
Topics covered:
UI automation Introduction,
UI automation Sample
Desktop automation flow
Pradeep Chinnala, Senior Consultant Automation Developer @WonderBotz and UiPath MVP
Deepak Rai, Automation Practice Lead, Boundaryless Group and UiPath MVP
Essentials of Automations: Optimizing FME Workflows with ParametersSafe Software
Are you looking to streamline your workflows and boost your projects’ efficiency? Do you find yourself searching for ways to add flexibility and control over your FME workflows? If so, you’re in the right place.
Join us for an insightful dive into the world of FME parameters, a critical element in optimizing workflow efficiency. This webinar marks the beginning of our three-part “Essentials of Automation” series. This first webinar is designed to equip you with the knowledge and skills to utilize parameters effectively: enhancing the flexibility, maintainability, and user control of your FME projects.
Here’s what you’ll gain:
- Essentials of FME Parameters: Understand the pivotal role of parameters, including Reader/Writer, Transformer, User, and FME Flow categories. Discover how they are the key to unlocking automation and optimization within your workflows.
- Practical Applications in FME Form: Delve into key user parameter types including choice, connections, and file URLs. Allow users to control how a workflow runs, making your workflows more reusable. Learn to import values and deliver the best user experience for your workflows while enhancing accuracy.
- Optimization Strategies in FME Flow: Explore the creation and strategic deployment of parameters in FME Flow, including the use of deployment and geometry parameters, to maximize workflow efficiency.
- Pro Tips for Success: Gain insights on parameterizing connections and leveraging new features like Conditional Visibility for clarity and simplicity.
We’ll wrap up with a glimpse into future webinars, followed by a Q&A session to address your specific questions surrounding this topic.
Don’t miss this opportunity to elevate your FME expertise and drive your projects to new heights of efficiency.
Elevating Tactical DDD Patterns Through Object CalisthenicsDorra BARTAGUIZ
After immersing yourself in the blue book and its red counterpart, attending DDD-focused conferences, and applying tactical patterns, you're left with a crucial question: How do I ensure my design is effective? Tactical patterns within Domain-Driven Design (DDD) serve as guiding principles for creating clear and manageable domain models. However, achieving success with these patterns requires additional guidance. Interestingly, we've observed that a set of constraints initially designed for training purposes remarkably aligns with effective pattern implementation, offering a more ‘mechanical’ approach. Let's explore together how Object Calisthenics can elevate the design of your tactical DDD patterns, offering concrete help for those venturing into DDD for the first time!
DevOps and Testing slides at DASA ConnectKari Kakkonen
My and Rik Marselis slides at 30.5.2024 DASA Connect conference. We discuss about what is testing, then what is agile testing and finally what is Testing in DevOps. Finally we had lovely workshop with the participants trying to find out different ways to think about quality and testing in different parts of the DevOps infinity loop.
1. Alfresco for Salesforce
5 November 2013 / 13 November 2013
Will Abson (wabson@alfresco.com)
Jared Ottley (jottley@alfresco.com)
Gregory Melahn (greg.melahn@alfresco.com)
#SummitNow
2. Agenda
• Part One (Business)
o Overview and Demonstration
• Part Two (Technical)
o How it Works
o Building on Salesforce
o Building on Alfresco
#SummitNow
4. What does the App do?
• Allows Salesforce Users to attach Documents
to Salesforce Objects and have them stored in
Alfresco
o
Four Specific Salesforce Object Types supported
▪ Accounts
▪ Cases
▪ Contracts
▪ Opportunities
• Allows Salesforce Users to Edit, View and
•
Delete the attached Alfresco Documents#SummitNow
Creates Chatter about the Alfresco Documents
5. Finding the App
• Go to the Salesforce App Exchange
•
https://appexchange.salesforce.com/
Enter some search criteria (e.g. ‘Alfresco’)
o
#SummitNow
11. Alfresco and SF Components
Properties Config
Adv. Search Form
Alfresco Share
Apex Classes
VisualForce Pages
Security Profiles
Salesforce Model
Alfresco Repository
Sample Layouts
Salesforce
#SummitNow
12. Salesforce Model
Salesforce Record
1
Stored in <site>/Salesforce Records
0..N
Salesforce
Attachment
Assoc
Stored in
<site>/documentLibrary/Salesforce
Attachments
Additional Aspects
CRM Account
Document Type
CRM Contract
CRM Case
CRM Opportunity
#SummitNow
13. Application Packaging
On the Salesforce side
o
o
(??)
Deployed on the AppExchange
On the Alfresco side (MyAlfresco only)
o
o
Repo AMP
▪ salesforce-repo-1.0.0.amp
Share AMP
▪ salesforce-share-1.0.0.amp
#SummitNow
14. How it Works
Web browser
A
O PI:
C Au
M th
IS +
Salesforce Users
#SummitNow
15. How it Works
Web browser
Upload:
OAuth +
CORS +
CMIS
A
O PI:
C Au
M th
IS +
Salesforce Users
#SummitNow
16. How it Works - Downloading a File
Web browser
O
CM Au
t
IS h +
Salesforce Users
1. User clicks Download link for
a file
2. Salesforce-side code checks
the user’s access token is
still valid
o If not valid, the token is
refreshed
3. Salesforce-side code checks
the document is present in
Alfresco, providing nodeRef
o If not present, the user
is forwarded to a ‘page
not found’ page
4. Salesforce-side code access
the content of the file from
Alfresco Cloud via CMIS and
#SummitNow
streams it back to the user
17. How it Works - Uploading a File
Web browser
OAuth +
CORS +
CMIS
O
CM Au
t
IS h +
Salesforce Users
1. User clicks Attach File button
in their browser, taken to New
Document page
2. User selects file, enters
Document Name and
Document Type (drop-down)
and hits Save
3. Page fires off POST request
to trigger Apex remote action
in Salesforce-side code,
which creates empty content
item in the Document Library
4. Browser does a CMIS PUT
directly against Alfresco
Cloud to upload the content
itself
o This works around
Salesforce request body
#SummitNow
size restrictions
o Access token from
18. Cloud Sync
OAuth +
CORS +
CMIS
Corporate Users
O
CM Au
t
IS h +
Web browser
Sync
Salesforce Users
Firewall
Remote Office
#SummitNow
21. CMIS API Challenges - No CMIS Client
• Force.com has no concept of libraries
• Install packages from appexchange
• Limited to what to is exposed by developer
• Add classes from other projects
• Count against you code total
• No one has written a CMIS appexchange package
• No one has written CMIS classses that could be added
• Apex Web Callouts to CMIS endpoints
#SummitNow
• Governance Limits
• Installer must approve connecting endpoints
22. CMIS API Challenges - Tenant Id
• Calls to Cloud CMIS API need tenant id
• CMIS provides no way to discover tenant id
• Two options:
• User provides
• Use REST API
• https://api.alfresco.com
• Apex JSON parser (requires new classes)
• JSON objects: Reserved words
• Limit to home network or ask user input #SummitNow
23. CMIS API Challenges - Verbosity
• CMIS is Verbose!
• Can reduce a little using filters
• Governance Limits
Example: Alfresco.com
• Alfresco.com site list is 400+ (and growing)
• Document size is 2.5 MB
Options:
• Paging
• CMIS Browser Bindings
#SummitNow
25. CMIS API Challenges - Child Objects
• Lacks support for including child objects
If it did….
Governance Limit Heap Size
Since it doesn’t…
Governance Limit Callout Requests
#SummitNow
26. CMIS API Challenge - Delete
CMIS API allows delete of relationship using objectId
using:
https://api.alfresco.com/alfresco.com/public/cmis/versions
/1.0/atom/entry?id=assoc:4240216&allVersions=true
Relationship MAY be deleted when the target is removed
in a peer relationship (according to the spec).
Any code should allow for a 404.
Previously the relationship remained and target pointed to
#SummitNow
the archiveStore.
27. CMIS API Challenges – Secondary
Types
•Lack of support of secondary types
makes the the integration dependent on
Alfresco extensions.
•Secondary type support would allow
client to fallback to base type.
#SummitNow
28. CMIS API Challenges - Sites folder
Listing documents is achieved using a CMIS getObjectByPath call
•We
know the path of the Salesforce Record item - /Sites/<network-
id>/Salesforce Records/<record-id>
But, the Sites folder may not always be named 'Sites', e.g. 'Sitios'!
•CMIS does not provide a way to specify a QName path, rather than a
name path.
So, we must find out what the sites folder is called, and store this
•This is done when the user selects the site to be used for document
storage.
#SummitNow
29. CMIS Workbench as Node Browser
org.apache.chemistry.opencmis.binding.spi.type=atompub
org.apache.chemistry.opencmis.binding.atompub.url=https:/
/api.alfresco.com/cmis/versions/1.0/atom
org.apache.chemistry.opencmis.binding.auth.http.basic=fals
e
org.apache.chemistry.opencmis.binding.header.0=Authorizat
ion:Bearer <oauth token>
org.apache.chemistry.opencmis.binding.compression=true
cmis.workbench.folder.includeAcls=false
cmis.workbench.object.includeAcls=false
cmis.workbench.version.includeAcls=false
#SummitNow
30. Salesforce Governance
10
Total number of callouts (HTTP
requests or Web services calls) in a
transaction
6 MB
Total heap size
10,000
Maximum CPU time on the
milliseconds Salesforce servers
5 MB
File size limit
#SummitNow
http://www.salesforce.com/us/developer/docs/apexcode/
31. Security Considerations
Salesforce apply strict criteria to apps before they can be
publicly listed on the AppExchange
Partnership with Checkmarx to allow developers to check
for common vulnerabilities in their Apex / Visualforce apps
The AppExchange team are responsible for performing a
final check across your app and any supporting services
For Alfresco this covered the MyAlfresco service
Developers do not have access to the tools used
This feedback process takes (up to) 8 weeks
#SummitNow
33. Add permission set to multiple users
Every user must have the ‘Alfresco Cloud
Document Management User’ permission
set applied to their account.
This can be scripted through the Salesforce
Developer Console.
#SummitNow
34. Example
User u = [select id from User where <logic here>];
PermissionSet ps = [Select p.Id From PermissionSet p
where p.label = 'Alfresco Cloud Document Management
User'];
PermissionSetAssignment psa = new
PermissionSetAssignment(AssigneeId = u.id,
PermissionSetId = ps.id);
insert psa;
#SummitNow
37. Known Issues and Limits
•
•
•
•
•
•
•
We don’t support IE versions prior to IE 10
Maximum of number of documents that can be attached to a single
Salesforce item is 100
Documents start out as V1.1, not 1.0
If you attach a document with the same name as an existing attachment
to the same Salesforce Object, we name the attachment with a ‘-<n>’
suffix (up to three such attachments)
Uploading a document that exceeds the Alfresco quota will fail, but a
Salesforce Chatter entry will still be created (transactional integrity)
The app uses the name of the Salesforce object to create the name of the
folder in Alfresco where the files are uploaded. If you create two
Salesforce objects with the same name, files attached to either object will
be stored in the same folder
Moderated sites that the Salesforce Admin is not yet a member of will still
appear in the Sites dropdown
#SummitNow
38. Force.com Limitations
No local deployment process, deploy
process is via an external API with only an
Ant task to integrate this into your
workflow
Namespacing
Formats not well documented
The process of certifying an app is opaque
and non-trivial
#SummitNow