Considérant en fait et en droit :
1.
Par jugement du 4 novembre 2019, la Chambre patrimoniale cantonale du canton de Vaud s'est prononcée dans une contestation opposant B._, demanderesse, à la société A._ SA, défenderesse. La contestation portait sur le paiement de marchandises livrées et de travaux exécutés par la demanderesse sur divers chantiers. La défenderesse est condamnée à payer 138'122,37 euros avec intérêts au taux de 5% par an dès le 6 décembre 2015.
La Cour d'appel civile du Tribunal cantonal a statué le 2 avril 2020 sur l'appel de la défenderesse. Elle a déclaré cet appel irrecevable faute de satisfaire aux exigences de l'art. 311 al. 1 CPC.
2.
Agissant principalement par la voie du recours en matière civile et subsidiairement par celle du recours constitutionnel, la défenderesse requiert le Tribunal fédéral d'opérer une réduction de 25'700 euros sur le montant de la condamnation.
La demanderesse conclut principalement à l'irrecevabilité des recours et subsidiairement à leur rejet.
Sans y être invitée, la défenderesse a déposé une réplique; la demanderesse a renoncé au dépôt d'une duplique.
Par ordonnance du 6 juillet 2020, la Présidente de la Ire Cour de droit civil a rejeté une demande d'effet suspensif jointe aux recours.
3.
Il n'est pas nécessaire de vérifier la recevabilité des recours car il appert que la Cour d'appel a de toute manière correctement appliqué l'art. 311 al. 1 CPC et les autres dispositions en cause.
4.
A teneur de l'art. 311 al. 1 CPC, l'appel s'introduit par un acte « écrit et motivé ». Selon la jurisprudence, l'acte doit aussi comporter des conclusions, lesquelles doivent indiquer sur quels points la partie appelante demande la modification ou l'annulation de la décision attaquée. Ces conclusions doivent en principe être libellées de telle manière que l'autorité d'appel puisse, s'il y a lieu, les incorporer sans modification au dispositif de sa propre décision. En règle générale, les conclusions portant sur des prestations en argent doivent être chiffrées (ATF 137 III 617 consid. 4.2 et 4.3 p. 618). Si nécessaire et à l'instar de toute déclaration en procédure, les conclusions doivent être interprétées de bonne foi, en particulier sur la base de la motivation qui les accompagne (arrêt 4A_653/2018 du 14 novembre 2019 consid. 6.3).
La motivation de l'appel doit indiquer en quoi la décision de première instance est tenue pour erronée. La partie appelante ne peut pas simplement renvoyer à ses moyens de défense soumis aux juges du premier degré, ni limiter son exposé à des critiques globales et superficielles de la décision attaquée. Elle doit plutôt développer une argumentation suffisamment explicite et intelligible, en désignant précisément les passages qu'elle attaque dans la décision dont est appel, et les moyens de preuve auxquels elle se réfère (ATF 138 III 374 consid. 4.3.1 p. 375; voir aussi ATF 142 III 413 consid. 2.2.4 p. 417).
5.
La Cour d'appel a jugé confuses et contradictoires les conclusions qui lui étaient en l'espèce soumises par la défenderesse et elle s'est efforcée de les interpréter sur la base de la motivation développée. A l'issue de sa discussion, elle retient que les conclusions sont insuffisantes faute d'être chiffrées, et que l'appel est par conséquent irrecevable.
6.
La défenderesse a surtout requis la Cour d'appel de « débouter [la demanderesse] de toutes ses conclusions », de « rejeter la demande [en justice] » et de « réformer le jugement [...] dans le sens des développements du présent appel ».
Les deux premiers de ces trois chefs de conclusions signifient sans équivoque que l'action en paiement doit être entièrement rejetée, ce qui satisfait à l'exigence de conclusions chiffrées.
Le troisième de ces chefs de conclusions contredit les deux premiers dans la mesure où la défenderesse semble y admettre qu'elle puisse être condamnée au paiement d'une somme qu'elle ne précise pas, à déterminer d'après la motivation présentée. Cet élément introduit une confusion malvenue. Néanmoins, les conclusions doivent être interprétées globalement et de bonne foi, c'est-à-dire aussi dans le respect du principe de la favor validitatis (ATF 138 III 714 concernant les clauses d'arbitrage). Ce principe semble en l'espèce imposer de faire abstraction du troisième chef de conclusions, et de retenir sur la base des deux premiers que l'appel tend au rejet intégral de l'action en paiement. Sur ce point, l'appréciation de la Cour d'appel est donc sujette à caution.
Quoi qu'il en soit, la motivation présentée dans le mémoire d'appel est elle aussi déficiente. On n'y trouve aucun raisonnement apte à fonder le rejet intégral de l'action en paiement. Divers chiffres sont spécifiquement discutés en vue d'aboutir, semble-t-il, à un rejet partiel; l'exposé est toutefois inintelligible parce qu'entièrement dépourvu de références aux considérants que la Chambre patrimoniale a développés sur cinquante-neuf pages de son jugement. Il s'ensuit que dans son résultat sinon dans tous ses motifs, l'arrêt de la Cour d'appel est non seulement conforme à l'art. 311 al. 1 CPC mais aussi compatible avec les art. 9 et 29 al. 1 Cst. également invoqués à l'appui des recours.
7.
A titre de partie qui succombe, la défenderesse doit acquitter l'émolument à percevoir par le Tribunal fédéral et les dépens auxquels l'autre partie peut prétendre.
Par ces motifs, le Tribunal fédéral prononce :
1.
Les recours sont rejetés, dans la mesure où ils sont recevables.
2.
La défenderesse acquittera un émolument judiciaire de 2'000 francs.
3.
La défenderesse versera une indemnité de 2'500 fr. à la demanderesse, à titre de dépens.
4.
Le présent arrêt est communiqué aux parties et au Tribunal cantonal du canton de Vaud.
Lausanne, le 1er septembre 2020
Au nom de la Ire Cour de droit civil
du Tribunal fédéral suisse
La présidente : Kiss
Le greffier : O. Carruzzo