Category

Développeur

Category

Salesforce Blockchain

Salesforce permet désormais aux entreprises de créer des applications et des réseaux blockchain sécurisés et partagés. Construit sur le protocole open source Hyperledger Sawtooth, Salesforce Blockchain est intégré directement à la plate-forme Salesforce. Cela permet aux clients de créer leurs réseaux, leurs données et leurs applications blockchain de confiance en quelques clics à l’aide d’outils faciles à utiliser, sans avoir recours à du code.

Environ 55 % des entreprises déclarent que le principal obstacle à l’adoption de la blockchain est de trouver des développeurs qualifiés capables de construire une blockchain. Lors de la configuration d’une blockchain, vous devez procéder comme suit.

1. Créez un modèle de données et un réseau.

2. Définissez les règles et les autorisations.

3. Créez une couche d’engagement pour les partenaires.

4. Créez une expérience utilisateur pour afficher des données.

5. Intégrez l’ensemble avec des données non-blockchain.

6. Intégrez la blockchain à vos processus et favorisez l’incitation.

Cependant, vous n’avez aucune envie d’accomplir toutes ces tâches à l’aide d’une montagne de code réalisé avec des outils incohérents.

Salesforce Blockchain vous permet de créer facilement vos propres réseaux de confiance pour étendre de manière sécurisée la gestion de la relation client à des partenaires (secteur, fournisseurs, distributeurs, institutions publiques et clients).

Comment Salesforce rend-il cela possible ? Tout d’abord, Salesforce Blockchain vous permet de créer des réseaux, des données et des applications blockchain en quelques clics, en utilisant la puissance des outils Salesforce nécessitant peu de code. Ensuite, il vous aide à rendre les données blockchain exploitables à l’aide des fonctionnalités intégrées de Lightning Flows, de recherche, de l’IA Einstein et de nombreux autres services. De plus, il vous permet d’engager facilement vos partenaires réseau blockchain à l’aide d’applications Lightning, de communautés ou d’API prédéfinies pour les partenaires n’ayant pas recours à Salesforce.

Exécution sur une base évolutive et flexible

Expliquons maintenant les composants clés de Salesforce Blockchain et ses avantages.

Hyperledger Sawtooth : il s’agit d’un protocole open source blockchain sur lequel est fondé Salesforce Blockchain. Il est sécurisé et évolutif.

Gestion du consensus : c’est une logique utilisée par le réseau pour convenir d’une mise à jour de la base de données blockchain. Salesforce propose divers protocoles de consensus (règles permettant de définir comment le réseau parvient à un consensus) afin que les réseaux puissent choisir le processus le plus adapté à leurs besoins.

API de contrats intelligents : API qui permet aux développeurs de créer un ensemble de règles métier et de les déployer sur le réseau. Les contrats intelligents permettent aux entreprises de créer des modèles commerciaux fondés sur la confiance et l’automatisation. Les règles reposent sur une blockchain et sont transparentes pour tous les partenaires.

Construction de réseaux et d’applications blockchain en quelques clics

Générateur de blockchain : outil de création permettant à un développeur ou à un administrateur de créer une application blockchain, d’ajouter des partenaires et de développer une infrastructure de nœud. Il inclut également une API qui permet aux développeurs de configurer par programmation une application masquant la complexité de la blockchain. L’interface utilisateur déclarative permet aux administrateurs de le faire en cliquant simplement, sans avoir recours à du code.

Image d’un ordinateur avec le générateur de blockchain

 

Automatisation à l’aide de la plate-forme Lightning

API de requête : API qui vous permet d’interroger la blockchain pour obtenir une définition d’entité ou un enregistrement spécifique. La blockchain est par nature une structure de données complexe à interroger, mais Salesforce a développé une approche performante et évolutive.

API d’historique : API qui vous permet d’interroger un enregistrement et d’afficher ses différentes versions et son évolution au fil du temps.

Événements de la blockchain – flux de travail : utilise les événements de plate-forme pour capturer l’activité de la blockchain et l’exposer au flux de travail Salesforce. Cette fonction automatise les actions autour des données de la blockchain.

Engagement de partenaires

API d’autorisations de partenaires : API permettant à tous les partenaires de contrôler l’accès en lecture et en écriture des objets et des champs. Salesforce Platform fournit ces contrôles d’accès dans le cadre de son architecture mutualisée et apporte des principes semblables à ceux de Salesforce Blockchain.

Blockchain Connect : service de synchronisation de données permettant de configurer des objets et des champs blockchain à afficher sur des pages d’enregistrement dans les applications ou la communauté Lightning, ou dans des applications personnalisées. Intégrez les données blockchain directement dans l’expérience utilisateur en quelques clics, sans code.

Salesforce Blockchain en quatre étapes

Parlons maintenant de ce dont vous avez besoin pour créer une application blockchain sur Salesforce. Pour vous aider à comprendre la simplicité de Salesforce Blockchain, penchons-nous sur un cas d’utilisation. Dans cet exemple, vous créez un réseau afin que les compagnies d’assurance, les gestionnaires de réclamations et les ateliers de réparation puissent travailler ensemble sur un grand livre de blockchain fiable pour une réclamation client.

  1. Commencez par définir votre réseau de confiance, ses règles et ses autorisations.
    Pour les déclarations de sinistre, vous voulez que l’agent d’assurance, le tiers gestionnaire des réclamations et l’atelier de réparation s’occupent en toute sécurité d’une réclamation. Par exemple, vous pouvez définir les autorisations pour l’agent d’assurance sur « lecture seule », tandis que d’autres participants au réseau peuvent lire, écrire et vérifier les modifications apportées à la base de données blockchain des réclamations.
  2. Créez un modèle de données avec peu de code directement sur la blockchain.
    Les données que vous souhaitez partager sont des réclamations. Vous créez donc un objet de réclamation et ajoutez des champs (date, client, etc.). Vous les créez de la même manière que n’importe quel objet de données dans Salesforce. La seule différence, c’est que les éléments sont créés directement dans la blockchain.
  3. Rendez les données de la blockchain exploitables.
    Chaque donnée de blockchain est accompagnée d’événements et d’une fonction de traitement automatisés (car elle est intégrée à la plate-forme Lightning). Ainsi, vos données blockchain deviennent immédiatement exploitables, envoient des notifications et peuvent automatiquement clôturer une réclamation. Par exemple, si un atelier de réparation effectue les réparations et enregistre les données relatives aux réparations sur la blockchain, les événements de plate-forme agissant sur ces informations, le statut de la réclamation passe automatiquement sur Réparations terminées sans vérification ni paperasse supplémentaires.
  4. Créez facilement des applications pour tous les partenaires et invitez-les.
    Si le partenaire utilise Salesforce, vous pouvez utiliser les applications ou la communauté Salesforce existantes pour afficher des enregistrements de blockchain et permettre aux partenaires d’interagir avec ces données. Lorsque vous ajoutez l’atelier de réparation et le gestionnaire de réclamations, ils voient ces données dans une vue unique partagée au sein d’une application Salesforce. Si les partenaires n’utilisent pas Salesforce, vous pouvez facilement créer des applications sur Heroku ou sur toute autre infrastructure personnalisée pour afficher des données blockchain via des API. Que vos partenaires soient ou non clients de Salesforce, Salesforce Blockchain leur permet de rejoindre et d’utiliser facilement votre réseau.

Résultat de recherche d'images pour "salesforce blockchain"

Salesforce Blockchain : nouvelles possibilités

Voici quelques cas d’utilisation de Salesforce Blockchain :

Transformation des expériences en marketing : une société d’hôtellerie peut créer un réseau de récompenses de fidélité différencié sur une blockchain afin de permettre aux clients d’utiliser des points de fidélité entre partenaires.

Accélération des processus de service : les sociétés immobilières peuvent réunir des sociétés de prêt hypothécaire, des sociétés de titres et des agents immobiliers sur une blockchain afin de répondre plus rapidement au besoin d’un acheteur de maison.

Accélération des ventes en engageant des réseaux : les banques peuvent réduire les cycles de vente et améliorer l’expérience client en mettant l’ensemble du processus KYC (Know Your Customer) destiné aux comptes professionnels sur une blockchain, avec un réseau de régulateurs et de réviseurs.

Augmentation de la confiance dans la chaîne d’approvisionnement : les entreprises de vêtements haut de gamme peuvent garantir un approvisionnement éthique en coton afin de garantir de bonnes pratiques commerciales et la confiance des clients.

Accélération de la réussite des étudiants : une université peut créer un réseau universel d’apprenants avec d’autres universités afin de permettre aux étudiants de se former tout au long de leur vie.

Lightning DataTable: composant Aura

LightningDataTableController (Contrôleur Apex)


public class LightningDataTableController{
    @AuraEnabled
    public static List<Contact> fetchAccountContacts(String accountId) { 
        List<Contact> lstContact=new List<Contact>();
        lstContact=[select id ,Name,Email,Phone from contact where accountid=:accountId];
        return lstContact;
    }
}

LightningDataTable.cmp (composant)


<aura:component controller="LightningDataTableController" 
                implements="force:hasRecordId,flexipage:availableForAllPageTypes,force:lightningQuickActionWithoutHeader" access="global">
    <aura:handler name="init" value="{!this}" action="{!c.doInit}" />
    <aura:attribute name="data" type="Object"/>
    <aura:attribute name="columns" type="List" default="[{label: 'Name', fieldName: 'LinkName', type: 'url', typeAttributes: {label: { fieldName: 'Name' }, target: '_blank'}},
            {label: 'Email', fieldName: 'Email', type: 'text'},
            {label: 'Phone', fieldName: 'Phone', type: 'text'}]"/>
    <aura:attribute name="recordId" type="String" default="" />
    <!-- the container element determine the height of the datatable -->
    <lightning:card aura:id="lightCard" class="slds-card_boundary" title="{!'Contacts ('+v.data.length+')'}" iconName="standard:contact">    
    <div style="overflow-x: auto;">
        <lightning:datatable style="height: 90% !important;display: block;"
                             aura:id="contacts"
                             columns="{!v.columns}"
                             data="{!v.data}"
                             keyField="id"
        />        
    </div>
        </lightning:card>
</aura:component>

LightningDataTableController.js (contrôleur JS)


({
 doInit : function(component, event){
        var contactAction = component.get("c.fetchAccountContacts"); 
        contactAction.setParams({
            accountId : component.get("v.recordId")
        });
        contactAction.setCallback(this,function(response){
            var state = response.getState();
            if (state === "SUCCESS" && response.getReturnValue() != '') {
                var records =response.getReturnValue();
                records.forEach(function(record){
                    record.LinkName = '/'+record.Id;
                });
                component.set('v.data',response.getReturnValue());
            }else if(state === "ERROR"){
                console.log('A problem occurred: ' + JSON.stringify(response.error));
            }
        });
        $A.enqueueAction(contactAction); 
    }
})

Lightning DataTable: Composant Web Lightning

LightningDataTableController (Contrôleur Apex)


public class LightningDataTableController{
    @AuraEnabled(cacheable=true)
    public static List<Contact> fetchAccountContacts(String contactId) { 
        List<Contact> lstContact=new List<Contact>();
        lstContact=[select id ,Name,Email,Phone from contact where accountid=:contactId];
        return lstContact;
    }
}

LightningDataTable.html (Modèle)



<template>
    <div class="hr">
</div>
<lightning-card icon-name="standard:record" title="{strTitle}">            
        <div class="slds-m-around_medium">
<template if:true="{contacts}">
                <lightning-datatable columns="{columns}" data="{contacts}" hide-checkbox-column="true" key-field="Id">
                </lightning-datatable>                
            </template>                        
        </div>
</lightning-card>  
    <div class="hr">
</div>
</template>

LightningDataTable.Js (contrôleur JS)



import { LightningElement, api, wire,track } from 'lwc';  
import fetchRecords from '@salesforce/apex/LightningDataTableController.fetchAccountContacts';
const columns = [
    { 
        label: 'Name', 
        fieldName: 'RecordUrl',
        type: 'url',
        typeAttributes: {
            label: { fieldName: 'Name' }, 
            target: '_self'
        } 
    },
    { 
        label: 'Email', 
        fieldName: 'Email'
    },
    { 
        label: 'Phone', 
        fieldName: 'Phone'
    }
];
export default class LightningDataTable extends LightningElement {  
    @api recordId;  
    @api strTitle;  
    @track columns;
    @track contacts;
    constructor() {
        super();
        this.strTitle='Account Contacts';
        this.columns = columns;
        this.contacts = [];
    }    

    // retrieving the data using wire service
    @wire(fetchRecords, {contactId:'$recordId' })
    records(result) {
        if (result.data) {
            this.contacts = [];
            result.data.forEach(item => {
                let contact = {};
                contact = {
                    RecordUrl:'/lightning/r/Contact/' + item.Id + '/view',
                    Id:item.Id,
                    Email:item.Email,
                    Name:item.Name
                    Phone:item.Phone
                };
                this.contacts.push(contact);            
            });
        }
    }
    
}

LightningDataTable.js-meta.xml (XML pour le fichier de configuration dans Salesforce)




<lightningcomponentbundle fqn="LightningDataTable" xmlns="http://soap.sforce.com/2006/04/metadata">
    <apiversion>45.0</apiversion>
    <isexposed>true</isexposed>  
    <targets>  
        <target>lightning__RecordPage</target>  
    </targets>  
</lightningcomponentbundle>

LightningDataTable.css (CSS)



.hr {
    border: 0;
    clear:both;
    display:block;
    width: 99%;               
    background-color:#CCC;
    height: 1px;
    margin-top:10px;
    margin-bottom: 10px;
  }

Remarque: Une fois le code entier enregistré, vous allez le déposer dans la page Lightning Record Detail du compte.