Dolibarr , Google Sheet et Google Data Studio

@Arre @BB2A
J’ai résolu le pb en ce qui me concerne, pas de compte Google (pas même mon Android).
Et de toute façon Google est bloqué au bureau par le firewall.
@+

C’est radical plutôt sur Apple ?

Non je suis sous Android mais pas de compte Google, en fait il n’y en a pas besoin si tu utilise Aurora plutôt GooglePlay.
Coté Firewall seul les stockages à distance sont bloqués (Google comme les autres). On peut y lire mais pas y écrire ni envoyer des fichiers :smiley:
@+

C’est exactement ce que j’ai fais.
Connection a ma base de données MYSQL.
Si vous recherchez un hébergeur qui accepte les connexions distantes … moi j’utilise A2 Hosting

Je vais essayer de faire une tuto …

Je peux comprendre les reticences à ce sujet … mais franchement, les donnees que je stock ne sont pas secret d’etat …

Salut @Philazerty

Côté RGPD et Google, il faut un abonnement pro à 10,4 par mois pour s’assurer que les données soient en Europe et raccord avec la RGPD

@+

Ce n’est pas une histoire de secret mais de réglementation. Le RGPD doit être appliqué dès la mise en oeuvre tant qu’à faire ! Pour rappel, il y a tous vos clients et vos contacts, donc quelques données privées comme des noms, téléphones etc…
@+

Vous avez raison.

Cependant je suis sous google apps payant ! Donc cela devrait être OK non ?

Ok Démarrons une tuto :
Premiere Etape :
Hébergement (Sur A2Hosting par exemple)
Rajout de l’adresse IP de mon serveur sur Google
Controlling Access with Firewalls (Pour vous aider)
https://console.cloud.google.com/ (Pour faire le nécessaire)

Deuxième Etape :
Créer un document vierge sous Google Sheet
Renommer le « Sheet » comme « Products » (Dans l’exemple)

Troisième Etape :
Cliquez sur Tools (Outils) → Script Editor (Editeur de Script)

Quatrième Etape :
Créer un Menu.
Le mien s’appelle « Quote System ». Dans l’exemple, il va vous permettre de telecharger la liste des produits de Dolibarr vers votre Sheet « Products »

Copiez et coller le code ci-dessous :

function OnOpen() {
var ui = SpreadsheetApp.getUi();
ui.createMenu('Quote System')
.addItem('Update Products', 'GetProducts') 
.addToUi();
}

Cinquième Etape :
Créer le script qui va se connecter a la base de donner et telecharger les produits.

Copiez et coller le code ci-dessous apres la fonction OnOpen() soit en ligne 8:

function GetProducts() {
SpreadsheetApp.getActiveSpreadsheet().toast('Getting Products'); // Affichage d'une petite fenetre marquant l'etape.

// variables de connexions  
  var dbUrl = "jdbc:mysql://ladresse.demon.serveur:3306/nom_de_ma_table"; // changez les variables ici pour celles correspondant a votre base de données
  var user = "mon_utilisateur";
  var userPwd = "mon_password";
  
  var connection = Jdbc.getConnection(dbUrl, user, userPwd);  

// Lancer la requete
var SQLstatement = connection.createStatement();
var result = SQLstatement.executeQuery("SELECT rowid,	ref,	entity,	ref_ext,	datec, tms, fk_parent, label FROM matable.llxo7_product WHERE tosell=1"); // remplacer matable par le nom de votre table. Cette requete ne telechargera que les produits actifs et llxo7 correspond au prefixe de ma table. vous devez donc remplacer llxo7.product par votre table.

// Definition de la Cible
var ss = SpreadsheetApp.getActiveSpreadsheet().getSheetByName("Products");
var cell = ss.getRange('A2');

// loop dans les resultats
var row = 0;
while(result.next()) {
for(var i=0; i<8; i++) { // i<8 donne le nombre de colonnes dans la base
cell.offset(row, i).setValue(result.getString(i+1));
}
row++;
}
// fermeture des connexions
result.close();
SQLstatement.close();
connection.close();
  
//Browser.msgBox('Products Updated'); // ou
SpreadsheetApp.getActiveSpreadsheet().toast('Products Updated');  
};
// Fin du script

Ensuite sauvegardez le script, fermez le document et ouvrez le a nouveau.
Vous devriez avoir un menu « Quote System » qui apparait juste apres AIDE
Cliquez dessus puis sur « Update Products »
Vous devriez voir la feuille se remplir au fur et a mesure.

Si jamais le menu n’apparait pas … cela arrive de temps en temps, forcez l’ouverture en passant par la fontion automatisation (Triggers) de google script.

Et voila !!!

Vous pouvez biensur utiliser ce principe pour toutes les tables que vous souhaitez telecharger … vous pourrez apres cela utiliser google sheet pour faire des croisement et construire toute sorte de nouveau tableau (index, vlookup …)

A vous de jouer !

ATTENTION : en copiant le code, les ’ deviennent des <> et les " deviennent << >>
Donc remplacez les < et > par ’ et les << et >> par " dans votre code sous google script sinon ca ne marchera pas.

2 « J'aime »

Oui si vous avez choisit un pays d’europe comme lieu de stockage.
Merci en tout cas pour la contribution
@+

Quelqu’un a t’il essayer la tuto ?

Je compte essayer, mais ce n’est pas encore fait. Je vous ferai un retour.

Si tu encadres par trois antiquotes (AltGr 7) au début et à la fin, tu as une présentation formatée comme du code et les ' restent.

Merci pour ce partage

alors, vous avez essayé ?

Hier non, mais comme cette solution m’intéresse beaucoup, je viens de tester. En deux mots, c’est un beaucoup trop technique pour moi. Je bute à presque toutes les étapes du tuto. Donc à réserver à des utilisateurs plus avancés que moi.

Si je détaille mes difficultés :
Etape 1 :
Je comprends qu’il faut récupérer l’adresse IP du serveur qui héberge son instance Dolibarr pour l’ajouter à console.cloud.google.
En suivant les instructions « Controlling Accesse with Firewalls » en voulant créer une règle de de pare-feu, j’ai tout de suite une erreur. En bidouillant un peu à l’aveugle, je crée une application dans App Engine, et je peux alors créer une règle de pare feu pour une plage d’adresses IP. Ce sera vraiment de la chance si c’est ce qu’il fallait faire…

Etape 2 : ouf c’est facile…

Etape 3 : Ça va encore. ma feuille s’appelle également « Products »

Etapes 4 et 5 : j’ai supprimé le code par défaut lorsque l’on ouvre l’éditeur de script. Je rajoute les deux blocs de code. J’ai utilisé le lien direct pour copier le code, donc normalement pas d’erreur de copie. Mon deuxième bloc de code commence en ligne 7 puisqu’il y a 6 lignes pour le premier bloc. J’enregistre. Je ferme et j’ouvre à nouveau « Products »

Je n’ai pas le nouveau menu « Update Products ».

Je suis la procédure « Installable Triggers » et je crois m’en sortir. Je ferme le fichier Products. Je l’ouvre à nouveau.

Et toujours rien !

Bref étant incapable de comprendre ce que je fais, ce n’est pas à ma portée.

PS : j’ai bien fait attention aux remplacements de ’ et ". Chez moi il n’y a pas eu de problème.

Etape 1 :
Je comprends qu’il faut récupérer l’adresse IP du serveur qui héberge son instance Dolibarr pour l’ajouter à console.cloud.google.
Oui … mais votre hebergeur doit vous donner l’adresse IP. Tous les hebergeurs ne donne pas cette possibilite.

En suivant les instructions « Controlling Accesse with Firewalls » en voulant créer une règle de de pare-feu, j’ai tout de suite une erreur. En bidouillant un peu à l’aveugle, je crée une application dans App Engine, et je peux alors créer une règle de pare feu pour une plage d’adresses IP. Ce sera vraiment de la chance si c’est ce qu’il fallait faire…
C’est cela … vous devez autoriser votre adresse IP.

Etape 2 : ouf c’est facile…
LOL

Etape 3 : Ça va encore. ma feuille s’appelle également « Products »

Etapes 4 et 5 : j’ai supprimé le code par défaut lorsque l’on ouvre l’éditeur de script. Je rajoute les deux blocs de code. J’ai utilisé le lien direct pour copier le code, donc normalement pas d’erreur de copie. Mon deuxième bloc de code commence en ligne 7 puisqu’il y a 6 lignes pour le premier bloc. J’enregistre. Je ferme et j’ouvre à nouveau « Products »

Je n’ai pas le nouveau menu « Update Products ».
Il y a un code pour creer le menu. Si le OnOpen ne fonctionne pas, il faut passer par les triggers pour lancer l’ouverture du menu.

Je suis la procédure « Installable Triggers » et je crois m’en sortir. Je ferme le fichier Products. Je l’ouvre à nouveau.
Re-essayez d’ouvrir avec le triggers pour la fonction OnOpen

ATTENTION : en copiant le code, les ’ deviennent des <> et les " deviennent << >>
Donc remplacez les < et > par ’ et les << et >> par " dans votre code sous google script sinon ca ne marchera pas.

Merci de votre retour rapide. J’avais bien vérifié l’absence d’erreur de copié/collé. Je n’ai pas eu de modification des caractères ’ et "